--- a/jdk/src/java.base/share/classes/jdk/internal/module/SystemModuleFinder.java Thu Mar 16 16:34:36 2017 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/module/SystemModuleFinder.java Wed Mar 22 16:26:27 2017 +0000
@@ -150,18 +150,21 @@
System.getProperty("jdk.system.module.finder.disabledFastPath") != null;
ModuleDescriptor[] descriptors;
+ ModuleTarget[] targets;
ModuleHashes[] recordedHashes;
ModuleResolution[] moduleResolutions;
// fast loading of ModuleDescriptor of system modules
if (isFastPathSupported() && !disabled) {
descriptors = SystemModules.descriptors();
+ targets = SystemModules.targets();
recordedHashes = SystemModules.hashes();
moduleResolutions = SystemModules.moduleResolutions();
} else {
// if fast loading of ModuleDescriptors is disabled
// fallback to read module-info.class
descriptors = new ModuleDescriptor[n];
+ targets = new ModuleTarget[n];
recordedHashes = new ModuleHashes[n];
moduleResolutions = new ModuleResolution[n];
ImageReader imageReader = SystemImage.reader();
@@ -171,6 +174,7 @@
ModuleInfo.Attributes attrs =
ModuleInfo.read(imageReader.getResourceBuffer(loc), null);
descriptors[i] = attrs.descriptor();
+ targets[i] = attrs.target();
recordedHashes[i] = attrs.recordedHashes();
moduleResolutions[i] = attrs.moduleResolution();
}
@@ -206,6 +210,7 @@
// create the ModuleReference
ModuleReference mref = toModuleReference(md,
+ targets[i],
recordedHashes[i],
hashSupplier(names[i]),
moduleResolutions[i]);
@@ -233,6 +238,7 @@
}
private ModuleReference toModuleReference(ModuleDescriptor md,
+ ModuleTarget target,
ModuleHashes recordedHashes,
HashSupplier hasher,
ModuleResolution mres) {
@@ -246,9 +252,14 @@
}
};
- ModuleReference mref =
- new ModuleReferenceImpl(md, uri, readerSupplier, null,
- recordedHashes, hasher, mres);
+ ModuleReference mref = new ModuleReferenceImpl(md,
+ uri,
+ readerSupplier,
+ null,
+ target,
+ recordedHashes,
+ hasher,
+ mres);
// may need a reference to a patched module if --patch-module specified
mref = ModuleBootstrap.patcher().patchIfNeeded(mref);