--- a/jdk/src/java.base/share/classes/java/lang/module/ModuleReferences.java Thu Apr 28 08:26:38 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/lang/module/ModuleReferences.java Tue May 03 09:09:57 2016 +0100
@@ -48,8 +48,8 @@
import jdk.internal.misc.JavaLangAccess;
import jdk.internal.misc.SharedSecrets;
-import jdk.internal.module.Hasher;
-import jdk.internal.module.Hasher.HashSupplier;
+import jdk.internal.module.ModuleHashes;
+import jdk.internal.module.ModuleHashes.HashSupplier;
import jdk.internal.module.ModulePatcher;
import sun.net.www.ParseUtil;
@@ -89,7 +89,7 @@
static ModuleReference newJarModule(ModuleDescriptor md, Path file) {
URI uri = file.toUri();
Supplier<ModuleReader> supplier = () -> new JarModuleReader(file, uri);
- HashSupplier hasher = (algorithm) -> Hasher.generate(file, algorithm);
+ HashSupplier hasher = (a) -> ModuleHashes.computeHashAsString(file, a);
return newModule(md, uri, supplier, hasher);
}
@@ -99,7 +99,7 @@
static ModuleReference newJModModule(ModuleDescriptor md, Path file) {
URI uri = file.toUri();
Supplier<ModuleReader> supplier = () -> new JModModuleReader(file, uri);
- HashSupplier hasher = (algorithm) -> Hasher.generate(file, algorithm);
+ HashSupplier hasher = (a) -> ModuleHashes.computeHashAsString(file, a);
return newModule(md, file.toUri(), supplier, hasher);
}
@@ -122,7 +122,7 @@
private final ReadWriteLock lock = new ReentrantReadWriteLock();
private final Lock readLock = lock.readLock();
private final Lock writeLock = lock.writeLock();
- private volatile boolean closed;
+ private boolean closed;
SafeCloseModuleReader() { }
@@ -198,7 +198,10 @@
static JarFile newJarFile(Path path) {
try {
- return new JarFile(path.toFile());
+ return new JarFile(path.toFile(),
+ true, // verify
+ ZipFile.OPEN_READ,
+ JarFile.Release.RUNTIME);
} catch (IOException ioe) {
throw new UncheckedIOException(ioe);
}
@@ -219,6 +222,8 @@
if (je != null) {
String encodedPath = ParseUtil.encodePath(name, false);
String uris = "jar:" + uri + "!/" + encodedPath;
+ if (jf.isMultiRelease())
+ uris += "#runtime";
return Optional.of(URI.create(uris));
} else {
return Optional.empty();