diff --git a/src/main/java/de/rub/nds/scanner/core/guideline/GuidelineIO.java b/src/main/java/de/rub/nds/scanner/core/guideline/GuidelineIO.java index 984e7e7a..0333b90a 100644 --- a/src/main/java/de/rub/nds/scanner/core/guideline/GuidelineIO.java +++ b/src/main/java/de/rub/nds/scanner/core/guideline/GuidelineIO.java @@ -89,8 +89,12 @@ private static List listXmlFiles(ClassLoader classLoader, String folder) .forEach(p -> xmlFilePaths.add(folder + "/" + p.getFileName().toString())); } } else if ("jar".equals(protocol)) { - // Running from a jar + // Running from a jar. Disable caching so each connection opens its own + // JarFile instance; the default cached instance is shared across threads + // and closing it (via try-with-resources) causes "zip file closed" errors + // in concurrent callers. JarURLConnection jarConnection = (JarURLConnection) url.openConnection(); + jarConnection.setUseCaches(false); try (JarFile jarFile = jarConnection.getJarFile()) { Enumeration entries = jarFile.entries(); while (entries.hasMoreElements()) {