in src/main/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscoverer.java [182:209]
private synchronized void readCache() {
if (cache == null) {
try {
cache = new ConcurrentHashMap<>();
cacheModified = false;
Path cacheFile = getCacheFile();
if (Files.isRegularFile(cacheFile)) {
try (Reader r = Files.newBufferedReader(cacheFile)) {
PersistedToolchains pt = new MavenToolchainsXpp3Reader().read(r, false);
cache = pt.getToolchains().stream()
// Remove stale entries
.filter(tc -> {
// If the bin/java executable is not available anymore, remove this TC
if (!hasJavaC(getJdkHome(tc))) {
cacheModified = true;
return false;
} else {
return true;
}
})
.collect(Collectors.toConcurrentMap(this::getJdkHome, Function.identity()));
}
}
} catch (IOException | XmlPullParserException e) {
log.debug("Error reading toolchains cache: " + e, e);
}
}
}