[
https://issues.apache.org/jira/browse/SLING-1111?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12755966#action_12755966
]
Vidar S. Ramdal commented on SLING-1111:
----------------------------------------
Good catch about the @author - I haven't even added the Apache license header,
so the javadoc comment must be replaced.
It seems that fmeschbe and cziegeler have commited most of the code in
RhinoJavaScriptEngine, so maybe they could cast some light on the issue?
> 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
> Fix For: Scripting JavaScript 2.0.6
>
> 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 is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.