private synchronized void writeCache()

in src/main/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscoverer.java [211:235]


    private synchronized void writeCache() {
        if (cacheModified) {
            try {
                Path cacheFile = getCacheFile();
                Files.createDirectories(cacheFile.getParent());
                try (Writer w = Files.newBufferedWriter(cacheFile)) {
                    PersistedToolchains pt = new PersistedToolchains();
                    pt.setToolchains(cache.values().stream()
                            .map(tc -> {
                                ToolchainModel model = tc.clone();
                                // Remove transient information
                                model.getProvides().remove(CURRENT);
                                model.getProvides().remove(ENV);
                                return model;
                            })
                            .sorted(version().thenComparing(vendor()))
                            .collect(Collectors.toList()));
                    new MavenToolchainsXpp3Writer().write(w, pt);
                }
            } catch (IOException e) {
                log.debug("Error writing toolchains cache: " + e, e);
            }
            cacheModified = false;
        }
    }