[infinispan-issues] [JBoss JIRA] (ISPN-6413) cache and marshaller are not passed to javascript in case of inner script running
Tristan Tarrant (JIRA)
issues at jboss.org
Mon Mar 21 05:54:00 EDT 2016
[ https://issues.jboss.org/browse/ISPN-6413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tristan Tarrant updated ISPN-6413:
----------------------------------
Priority: Minor (was: Major)
> cache and marshaller are not passed to javascript in case of inner script running
> ---------------------------------------------------------------------------------
>
> Key: ISPN-6413
> URL: https://issues.jboss.org/browse/ISPN-6413
> Project: Infinispan
> Issue Type: Bug
> Components: Tasks
> Reporter: Anna Manukyan
> Assignee: Tristan Tarrant
> Priority: Minor
>
> The cache and marshaller objects are not passed to javascript when it is run from another javascript.
> {code}
> //testInnerScriptCall.js
> //mode=local,language=javascript,parameters=[a]
> var TaskContext = Java.type("org.infinispan.tasks.TaskContext")
> cache.put("processValue", "script1");
> scriptingManager.runScript("testExecWithoutProp.js");
> cache.get("processValue");
> //testExecWithoutProp.js
> // mode=local,language=javascript
> var val = cache.get("processValue");
> cache.put("processValue", val + ":additionFromJavascript");
> {code}
> This code gives the following exception:
> {code}
> org.infinispan.commons.CacheException: ISPN026003: Script execution error
> at org.infinispan.scripting.impl.ScriptingManagerImpl.execute(ScriptingManagerImpl.java:206)
> at org.infinispan.scripting.impl.LocalRunner.runScript(LocalRunner.java:19)
> at org.infinispan.scripting.impl.ScriptingManagerImpl.runScript(ScriptingManagerImpl.java:181)
> at org.infinispan.scripting.impl.ScriptingManagerImpl.runScript(ScriptingManagerImpl.java:143)
> at jdk.nashorn.internal.scripts.Script$36$\^eval\_.:program(<eval>:6)
> at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:640)
> at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:228)
> at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)
> at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:418)
> at jdk.nashorn.api.scripting.NashornScriptEngine.access$300(NashornScriptEngine.java:73)
> at jdk.nashorn.api.scripting.NashornScriptEngine$3.eval(NashornScriptEngine.java:511)
> at javax.script.CompiledScript.eval(CompiledScript.java:92)
> at org.infinispan.scripting.impl.ScriptingManagerImpl.execute(ScriptingManagerImpl.java:198)
> at org.infinispan.scripting.impl.LocalRunner.runScript(LocalRunner.java:19)
> at org.infinispan.scripting.impl.ScriptingManagerImpl.runScript(ScriptingManagerImpl.java:181)
> at org.infinispan.scripting.ScriptingTest.testScriptCallFromJavascript(ScriptingTest.java:126)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
> at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
> at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
> at org.testng.TestRunner.privateRun(TestRunner.java:767)
> at org.testng.TestRunner.run(TestRunner.java:617)
> at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
> at org.testng.SuiteRunner.run(SuiteRunner.java:254)
> at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
> at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
> at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
> at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
> at org.testng.TestNG.run(TestNG.java:1057)
> at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
> at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:122)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
> Caused by: javax.script.ScriptException: ReferenceError: "cache" is not defined in <eval> at line number 2
> at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:467)
> at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:423)
> at jdk.nashorn.api.scripting.NashornScriptEngine.access$300(NashornScriptEngine.java:73)
> at jdk.nashorn.api.scripting.NashornScriptEngine$3.eval(NashornScriptEngine.java:511)
> at javax.script.CompiledScript.eval(CompiledScript.java:92)
> at org.infinispan.scripting.impl.ScriptingManagerImpl.execute(ScriptingManagerImpl.java:198)
> ... 43 more
> Caused by: <eval>:2 ReferenceError: "cache" is not defined
> at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)
> at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:319)
> at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:291)
> at jdk.nashorn.internal.objects.Global.__noSuchProperty__(Global.java:1432)
> at jdk.nashorn.internal.scripts.Script$35$\^eval\_.:program(<eval>:2)
> at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:640)
> at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:228)
> at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)
> at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:418)
> ... 47 more
> {code}
> The test for this javascript is:
> {code}
> public void testScriptCallFromJavascript() throws Exception {
> String result = (String) scriptingManager.runScript("testInnerScriptCall.js",
> new TaskContext().cache(cacheManager.getCache("test_cache")).addParameter("a", "ahoj")).get();
> assertEquals("script1:additionFromJavascript", result);
> }
> {code}
> The same error is given for marshaller. The issue appears for both simple use as well as for execution over hotrod-client.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the infinispan-issues
mailing list