From 496b798b667dfde9eba7187cb49685d54167db70 Mon Sep 17 00:00:00 2001 From: Mandy Chung Date: Fri, 25 Aug 2017 10:52:17 -0700 Subject: [PATCH] 8186145: tools/launcher/modules/validate/ValidateModulesTest.java fails when launched with -XX:+EnableJVMCI --validate-modules runs with a boot layer resolving all system modules rather than only java.base Reviewed-by: alanb --- .../jdk/internal/module/ModuleBootstrap.java | 19 +++++++++++++------ jdk/src/java.base/share/native/libjli/java.c | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/jdk/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java b/jdk/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java index 1f769f3a7b9..df580eaf9c7 100644 --- a/jdk/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java +++ b/jdk/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java @@ -215,10 +215,10 @@ public final class ModuleBootstrap { // Step 2a: If --validate-modules is specified then the VM needs to - // start with only java.base, all other options are ignored. + // start with only system modules, all other options are ignored. - if (getAndRemoveProperty("jdk.module.minimumBoot") != null) { - return createMinimalBootLayer(); + if (getAndRemoveProperty("jdk.module.validation") != null) { + return createBootLayerForValidation(); } @@ -421,12 +421,19 @@ public final class ModuleBootstrap { } /** - * Create a "minimal" boot module layer that only contains java.base. + * Create a boot module layer for validation that resolves all + * system modules. */ - private static ModuleLayer createMinimalBootLayer() { + private static ModuleLayer createBootLayerForValidation() { + Set allSystem = ModuleFinder.ofSystem().findAll() + .stream() + .map(ModuleReference::descriptor) + .map(ModuleDescriptor::name) + .collect(Collectors.toSet()); + Configuration cf = SharedSecrets.getJavaLangModuleAccess() .resolveAndBind(ModuleFinder.ofSystem(), - Set.of(JAVA_BASE), + allSystem, null); Function clf = ModuleLoaderMap.mappingFunction(cf); diff --git a/jdk/src/java.base/share/native/libjli/java.c b/jdk/src/java.base/share/native/libjli/java.c index 8acf82c2740..33f2363f613 100644 --- a/jdk/src/java.base/share/native/libjli/java.c +++ b/jdk/src/java.base/share/native/libjli/java.c @@ -1296,7 +1296,7 @@ ParseArguments(int *pargc, char ***pargv, } else if (JLI_StrCmp(arg, "--show-resolved-modules") == 0) { showResolvedModules = JNI_TRUE; } else if (JLI_StrCmp(arg, "--validate-modules") == 0) { - AddOption("-Djdk.module.minimumBoot=true", NULL); + AddOption("-Djdk.module.validation=true", NULL); validateModules = JNI_TRUE; } else if (JLI_StrCmp(arg, "--describe-module") == 0 || JLI_StrCCmp(arg, "--describe-module=") == 0 ||