8215449: Several tests failing when jtreg run with -vmoption:--illegal-access=deny

Reviewed-by: redestad, mchung, jjg
This commit is contained in:
Alan Bateman 2018-12-18 10:26:15 +00:00
parent bbfc4b7956
commit 888057a89f
3 changed files with 24 additions and 3 deletions
test
jdk/java
langtools/tools/javac/platform

@ -32,6 +32,7 @@ import java.util.concurrent.CountDownLatch;
* @test
* @bug 8213942
* @summary URLStreamHandler initialization race
* @modules java.base/java.net:open
* @run main/othervm RacyHandler
* @run main/othervm RacyHandler
* @run main/othervm RacyHandler
@ -110,4 +111,4 @@ public class RacyHandler {
return null;
}
}
}
}

@ -156,6 +156,7 @@ public class LocaleProvidersRun {
launcher.addToolArg("-cp")
.addToolArg(Utils.TEST_CLASS_PATH)
.addToolArg("-Djava.locale.providers=" + prefList)
.addToolArg("--add-exports=java.base/sun.util.locale.provider=ALL-UNNAMED")
.addToolArg("LocaleProviders")
.addToolArg(methodName)
.addToolArg(param1)

@ -26,8 +26,11 @@
* @bug 8207954
* @summary Verify that CreateSymbols can handle classfiles from the current release.
* @library /tools/lib /tools/javac/lib
* @modules jdk.compiler/com.sun.tools.javac.api
* @modules jdk.compiler/com.sun.tools.javac.api:+open
* jdk.compiler/com.sun.tools.javac.main
* jdk.compiler/com.sun.tools.javac.jvm:+open
* jdk.compiler/com.sun.tools.javac.util:+open
* jdk.jdeps/com.sun.tools.classfile:+open
* @build toolbox.ToolBox toolbox.JavacTask toolbox.Task
* @run main CanHandleClassFilesTest
*/
@ -36,6 +39,7 @@ import java.io.Writer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
import javax.tools.StandardLocation;
@ -93,8 +97,16 @@ public class CanHandleClassFilesTest {
}
};
// open the non-exported packages needed by CreateSymbols to its module
Module targetModule = cl.getUnnamedModule();
Stream.of("jdk.compiler/com.sun.tools.javac.api",
"jdk.compiler/com.sun.tools.javac.jvm",
"jdk.compiler/com.sun.tools.javac.util",
"jdk.jdeps/com.sun.tools.classfile")
.forEach(p -> open(p, targetModule));
var createSymbolsClass = Class.forName("build.tools.symbolgenerator.CreateSymbols", false, cl);
var main = createSymbolsClass.getDeclaredMethod("main", String[].class);
var main = createSymbolsClass.getMethod("main", String[].class);
var symbols = targetDir.resolve("symbols");
try (Writer w = Files.newBufferedWriter(symbols)) {}
@ -112,4 +124,11 @@ public class CanHandleClassFilesTest {
}
}
void open(String moduleAndPackage, Module target) {
String[] s = moduleAndPackage.split("/");
var moduleName = s[0];
var packageName = s[1];
ModuleLayer.boot().findModule(moduleName).orElseThrow().addOpens(packageName, target);
}
}