--- a/jdk/src/java.base/share/classes/java/lang/StackTraceElement.java Wed Dec 14 20:23:24 2016 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/StackTraceElement.java Fri Dec 16 06:19:16 2016 +0000
@@ -26,11 +26,13 @@
package java.lang;
import jdk.internal.loader.BuiltinClassLoader;
-import jdk.internal.misc.SharedSecrets;
import jdk.internal.misc.VM;
import jdk.internal.module.ModuleHashes;
+import jdk.internal.module.ModuleReferenceImpl;
import java.lang.module.ModuleDescriptor.Version;
+import java.lang.module.ModuleReference;
+import java.lang.module.ResolvedModule;
import java.lang.reflect.Layer;
import java.lang.reflect.Module;
import java.util.HashSet;
@@ -484,13 +486,16 @@
static Set<String> HASHED_MODULES = hashedModules();
static Set<String> hashedModules() {
- Module javaBase = Layer.boot().findModule("java.base").get();
- Optional<ModuleHashes> ohashes =
- SharedSecrets.getJavaLangModuleAccess()
- .hashes(javaBase.getDescriptor());
- if (ohashes.isPresent()) {
- Set<String> names = new HashSet<>(ohashes.get().names());
+ Optional<ResolvedModule> resolvedModule = Layer.boot()
+ .configuration()
+ .findModule("java.base");
+ assert resolvedModule.isPresent();
+ ModuleReference mref = resolvedModule.get().reference();
+ assert mref instanceof ModuleReferenceImpl;
+ ModuleHashes hashes = ((ModuleReferenceImpl)mref).recordedHashes();
+ if (hashes != null) {
+ Set<String> names = new HashSet<>(hashes.names());
names.add("java.base");
return names;
}