sling-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Munteanu (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (SLING-1111) RhinoJavaScriptEngine does not preserve scope between eval()s
Date Wed, 20 Sep 2017 12:10:01 GMT

     [ https://issues.apache.org/jira/browse/SLING-1111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Robert Munteanu closed SLING-1111.
----------------------------------

> RhinoJavaScriptEngine does not preserve scope between eval()s
> -------------------------------------------------------------
>
>                 Key: SLING-1111
>                 URL: https://issues.apache.org/jira/browse/SLING-1111
>             Project: Sling
>          Issue Type: Bug
>          Components: Scripting
>    Affects Versions:  Scripting JavaScript 2.0.4
>            Reporter: Vidar S. Ramdal
>            Assignee: Carsten Ziegeler
>             Fix For: Scripting JavaScript 2.0.8
>
>         Attachments: SLING-1111.patch
>
>
> The RhinoJavaScriptEngine does not preserve it scope, so that the scope is reset between
each call to eval().
> So that:
> RhinoJavaScriptEngineFactory factory = new RhinoJavaScriptEngineFactory();
> ScriptEngine engine = factory.getScriptEngine();
> engine.eval("var f = 1");
> engine.eval("f += 1");
> ... fails with a "ReferenceError: "f" is not defined"
> The problem seems to be that "scope" is a local variable in RhinoJavaScriptEngine.eval(),
while it should have been a class field. 
> I have prepared a patch and a test (coming up), but I'm not familiar with the script
engine code, so the fix might very likely break other stuff.
> So please review this.
> More background: http://www.coderanch.com/t/460570/Other-JSE-JEE-APIs/java/javax-script-Save-state-scope



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message