[infinispan-issues] [JBoss JIRA] (ISPN-2484) The callable result retrieval fails in case of retry

Anna Manukyan (JIRA) jira-events at lists.jboss.org
Tue Nov 6 09:35:18 EST 2012


Anna Manukyan created ISPN-2484:
-----------------------------------

             Summary: The callable result retrieval fails in case of retry
                 Key: ISPN-2484
                 URL: https://issues.jboss.org/browse/ISPN-2484
             Project: Infinispan
          Issue Type: Bug
          Components: Distributed Execution and Map/Reduce
            Reporter: Anna Manukyan
            Assignee: Vladimir Blagojevic


Hi,

the issue is the following:

1. There is a simple callable, which throws an exception. The class is written so that, the exception throwing part is configurable. After the first time the exception is thrown, the attribute is set so that, during 2nd execution, the normal value is returned.

2. The callable is executed with DefaultExecutorService. During DistributedTask building, a custom newly created failoverPolicy is set to the task, which maxFailoverAttempts is set to 1.

3. When the test run, first execution throws exception, then as the maxFailoverAttempts is set to 1, system retries to execution the callable once more. On the retry, the callable should return normal value. But instead, the following exception is thrown:

"java.util.concurrent.ExecutionException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.util.Map at org.infinispan.distexec.DefaultExecutorService$DistributedTaskPart.innerGet(DefaultExecutorService.java:914) at org.infinispan.distexec.DefaultExecutorService$DistributedTaskPart.get(DefaultExecutorService.java:874) at org.infinispan.distexec.BasicDistributedExecutorTest.testDistributedCallableCustomFailoverPolicySuccessfullRetry(BasicDistributedExecutorTest.java:353) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.util.Map at org.infinispan.distexec.DefaultExecutorService$DistributedTaskPart.retrieveResult(DefaultExecutorService.java:981) at org.infinispan.distexec.DefaultExecutorService$DistributedTaskPart.innerGet(DefaultExecutorService.java:912) ... 23 more ... Removed 16 stack frames
java.util.concurrent.ExecutionException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.util.Map at org.infinispan.distexec.DefaultExecutorService$DistributedTaskPart.innerGet(DefaultExecutorService.java:914) at org.infinispan.distexec.DefaultExecutorService$DistributedTaskPart.get(DefaultExecutorService.java:874) at org.infinispan.distexec.BasicDistributedExecutorTest.testDistributedCallableCustomFailoverPolicySuccessfullRetry(BasicDistributedExecutorTest.java:353) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) at org.testng.internal.Invoker.invokeMethod(Invoker.java:715) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:907) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1237) 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:334) at org.testng.SuiteRunner.access$000(SuiteRunner.java:37) at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368) at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.util.Map at org.infinispan.distexec.DefaultExecutorService$DistributedTaskPart.retrieveResult(DefaultExecutorService.java:981) at org.infinispan.distexec.DefaultExecutorService$DistributedTaskPart.innerGet(DefaultExecutorService.java:912) ... 23 more " 

You can find the reproduction scenario here:
https://github.com/andyuk1986/infinispan/blob/DIST_EXEC_TESTS/core/src/test/java/org/infinispan/distexec/BasicDistributedExecutorTest.java (testDistributedCallableCustomFailoverPolicySuccessfullRetry test)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the infinispan-issues mailing list