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

NashornScriptEngine returns javax.script.ScriptContext instance with insonsistent get/remove methods behavior for undefined attributes

    Details

      Backports

        Description

        Consider the following methods:
        http://docs.oracle.com/javase/8/docs/api/javax/script/ScriptContext.html#getAttribute-java.lang.String-int-
        http://docs.oracle.com/javase/8/docs/api/javax/script/ScriptContext.html#removeAttribute-java.lang.String-int-

        For attribute names which are undefined they behave differently for Nashorn:

                new ScriptEngineManager()
                    .getEngineFactories()
                    .stream()
                    .map(ScriptEngineFactory::getScriptEngine)
                    .map((engine) -> {
                        System.err.println("engine = " + engine);
                        return engine.getContext();
                    })
                    .forEach(c -> {
                        System.err.println("context = " + c);
                        System.err.println("get returns = " + c.getAttribute("undefinedname", ScriptContext.ENGINE_SCOPE));
                        System.err.println("remove returns = " + c.removeAttribute("undefinedname", ScriptContext.ENGINE_SCOPE));
                    });


        When run v.s. OracleJDK the output will be like:


        engine = jdk.nashorn.api.scripting.NashornScriptEngine@f3eef9
        context = javax.script.SimpleScriptContext@3c4f91
        get returns = null
        remove returns = undefined


        The following JCK9 test fails due to this:

        api/javax_script/ScriptContext/index.html#SetGetAttribute[remove_noValueDefined]

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  sundar Sundararajan Athijegannathan
                  Reporter:
                  dbessono Dmitry Bessonov
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: