Fix url cache (fixes #532 and #527)

This commit is contained in:
Guillaume Nodet
2022-01-03 08:30:41 +01:00
committed by GitHub
parent 6dedbdc84d
commit 06fa4fd227
3 changed files with 8 additions and 13 deletions

View File

@@ -151,6 +151,7 @@ public class DefaultClient implements Client {
" --add-opens java.base/java.io=ALL-UNNAMED"
+ " --add-opens java.base/java.lang=ALL-UNNAMED"
+ " --add-opens java.base/java.util=ALL-UNNAMED"
+ " --add-opens java.base/sun.net.www.protocol.jar=ALL-UNNAMED"
+ " --add-opens java.base/sun.nio.fs=ALL-UNNAMED");
}

View File

@@ -15,7 +15,6 @@
*/
package org.mvndaemon.mvnd.common;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
@@ -26,10 +25,6 @@ import java.util.stream.Stream;
public class MavenDaemon {
public static void main(String[] args) throws Exception {
// Disable URL caching so that the JVM does not try to cache resources
// loaded from jars that are built by a previous run
new File("txt").toURI().toURL().openConnection().setDefaultUseCaches(false);
final Path mvndHome = Environment.MVND_HOME.asPath();
URL[] classpath = Stream.concat(
/* jars */

View File

@@ -168,14 +168,7 @@ public class Server implements AutoCloseable, Runnable {
try {
registry.close();
} finally {
try {
socket.close();
} finally {
if (!noDaemon) {
clearCache("sun.net.www.protocol.jar.JarFileFactory", "urlCache");
clearCache("sun.net.www.protocol.jar.JarFileFactory", "fileCache");
}
}
}
}
}
@@ -193,6 +186,7 @@ public class Server implements AutoCloseable, Runnable {
cache.clear();
} catch (Throwable t) {
// ignore
LOGGER.warn("Error clearing cache {}.{}", clazzName, fieldName, t);
}
}
@@ -263,6 +257,11 @@ public class Server implements AutoCloseable, Runnable {
}
} catch (Throwable t) {
LOGGER.error("Error reading request", t);
} finally {
if (!noDaemon) {
clearCache("sun.net.www.protocol.jar.JarFileFactory", "urlCache");
clearCache("sun.net.www.protocol.jar.JarFileFactory", "fileCache");
}
}
}