Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8025493

Regression: engine.eval("importClass(java.lang.System);"); throws ScriptException

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P1 P1
    • None
    • 8
    • core-libs

      Simple code:
      ----------------------
      import javax.script.ScriptEngine;
      import javax.script.ScriptEngineManager;


      public class ImportTest {
          public static void main(String args[]) {
              try {
                  ScriptEngineManager manager = new ScriptEngineManager();
                  ScriptEngine engine = manager.getEngineByName("JavaScript");
                  if (engine == null) {
                      throw new Error("JavaScript egine not found");
                  }
                  engine.eval("importClass(java.lang.System);");
                  System.out.println("OS: " + engine.eval("System.getProperty(\"os.name\")"));
              } catch (Exception e) {
                  e.printStackTrace();
              }
              
          }
      }
      ---

      # java -version
      java version "1.8.0-ea"
      Java(TM) SE Runtime Environment (build 1.8.0-ea-b109)
      Java HotSpot(TM) Server VM (build 25.0-b51, mixed mode

      # java ImportTest
      javax.script.ScriptException: ReferenceError: "importClass" is not defined in <eval> at line number 1
              at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:553)
              at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:537)
              at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:517)
              at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:513)
              at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:202)
              at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) at ImportTest.main(ImportTest.java:14)
      Caused by: <eval>:1 ReferenceError: "importClass" is not defined
              at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:56)
              at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:318)
              at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:290)
              at jdk.nashorn.api.scripting.NashornScriptEngine.__noSuchProperty__(NashornScriptEngine.java:286)
              at jdk.nashorn.internal.scripts.Script$engine._L35(nashorn:engine/resources/engine.js:37)
              at jdk.nashorn.internal.scripts.Script$\^eval\_.runScript(<eval>:1)
              at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:527)
              at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:204)
              at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:367)
              at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:535)
              ... 5 more


            hannesw Hannes Wallnoefer
            dfazunen Dmitry Fazunenko (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: