[JBoss JIRA] (ISPN-6413) cache and marshaller are not passed to javascript in case of inner script running
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-6413?page=com.atlassian.jira.plugin.... ]
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)
10 years
[JBoss JIRA] (ISPN-6413) cache and marshaller are not passed to javascript in case of inner script running
by Anna Manukyan (JIRA)
Anna Manukyan created ISPN-6413:
-----------------------------------
Summary: 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
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)
10 years
[JBoss JIRA] (ISPN-6411) Marshalled value is returned while executing javascript and returning value from cache over HotRod client
by Anna Manukyan (JIRA)
Anna Manukyan created ISPN-6411:
-----------------------------------
Summary: Marshalled value is returned while executing javascript and returning value from cache over HotRod client
Key: ISPN-6411
URL: https://issues.jboss.org/browse/ISPN-6411
Project: Infinispan
Issue Type: Bug
Components: Remote Protocols
Reporter: Anna Manukyan
Assignee: Tristan Tarrant
When trying to execute a script over hotrod-client, which puts some data to the cache and returns it, the test fails with the following exception:
{code}
java.lang.ClassCastException: [B cannot be cast to java.lang.String
at org.infinispan.client.hotrod.ExecTest.testRemoteScriptRemoteExecution(ExecTest.java:122)
...
{code}
The test code and javascript code are:
{code}
@Test
public void testRemoteScriptRemoteExecution() throws IOException {
String cacheName = "testRemoteScriptRemoteExecution_REPL_SYNC";
ConfigurationBuilder builder = getDefaultClusteredCacheConfig(CacheMode.REPL_SYNC, true);
builder.dataContainer().keyEquivalence(new AnyServerEquivalence()).valueEquivalence(new AnyServerEquivalence()).compatibility().enable().marshaller(new GenericJBossMarshaller());
defineInAll(cacheName, builder);
try (InputStream is = this.getClass().getResourceAsStream("/test1.js")) {
String script = TestingUtil.loadFileAsString(is);
clients.get(0).getCache(SCRIPT_CACHE).put("testRemoteScriptRemoteExecution.js", script);
}
Map<String, String> params = new HashMap<>();
String result = clients.get(0).getCache(cacheName).execute("testRemoteScriptRemoteExecution.js", params); //<- The exception is thrown here while casting to String
assertEquals("hoptimus prime", result);
assertEquals("hoptimus prime", clients.get(0).getCache(cacheName).get("a"));
}
//test1.js
// mode=local,language=javascript
cache.put("a", "hoptimus prime");
cache.get("a");
{code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years
[JBoss JIRA] (ISPN-6390) Transport initial cluster timeout resets whenever a new node joins
by Sebastian Łaskawiec (JIRA)
[ https://issues.jboss.org/browse/ISPN-6390?page=com.atlassian.jira.plugin.... ]
Sebastian Łaskawiec updated ISPN-6390:
--------------------------------------
Fix Version/s: 9.0.0.Alpha1
> Transport initial cluster timeout resets whenever a new node joins
> ------------------------------------------------------------------
>
> Key: ISPN-6390
> URL: https://issues.jboss.org/browse/ISPN-6390
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.0.Final
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Fix For: 9.0.0.Final, 9.0.0.Alpha1, 8.2.1.Final
>
>
> {{JGroupsTransport.waitForInitialNodes()}} calls {{waitForView(currentViewId + 1, timeout, MILLISECONDS)}} repeatedly, and doesn't adjust the timeout when a new view is installed.
> This means a node joining/leaving just before the timeout expire will effectively double the timeout.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years