--- a/nashorn/test/script/nosecurity/JDK-8044798.js Tue Mar 15 13:48:31 2016 -0700
+++ b/nashorn/test/script/nosecurity/JDK-8044798.js Thu Mar 17 19:04:35 2016 +0000
@@ -27,7 +27,6 @@
* @test
* @option -Dnashorn.mirror.always=false
* @fork
- * @run
*/
// basic API exercise checks
@@ -120,18 +119,25 @@
var Source = Java.type("jdk.nashorn.internal.runtime.Source");
var Context = Java.type("jdk.nashorn.internal.runtime.Context");
+var ThrowErrorManager = Java.type("jdk.nashorn.internal.runtime.Context.ThrowErrorManager");
+var contextCls = java.lang.Class.forName("jdk.nashorn.internal.runtime.Context");
var sourceCls = Source.class;
var errorMgrCls = Java.type("jdk.nashorn.internal.runtime.ErrorManager").class;
var booleanCls = Java.type("java.lang.Boolean").TYPE;
+var stringCls = Java.type("java.lang.String").class;
// private compile method of Context class
-var compileMethod = Context.class.getDeclaredMethod("compile",
+var compileMethod = contextCls.getDeclaredMethod("compile",
sourceCls, errorMgrCls, booleanCls, booleanCls);
compileMethod.accessible = true;
-var scriptCls = compileMethod.invoke(Context.context,
- Source.sourceFor("test", "print('hello')"),
- new Context.ThrowErrorManager(), false, false);
+var getContextMethod = contextCls.getMethod("getContext");
+getContextMethod.accessible = true;
+
+var sourceForMethod = sourceCls.getMethod("sourceFor", stringCls, stringCls);
+var scriptCls = compileMethod.invoke(getContextMethod.invoke(null),
+ sourceForMethod.invoke(null, "test", "print('hello')"),
+ ThrowErrorManager.class.newInstance(), false, false);
var SCRIPT_CLASS_NAME_PREFIX = "jdk.nashorn.internal.scripts.Script$";
print("script class name pattern satisfied? " +