Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.3.3
-
None
-
Ode 1.3.3 WAR distribution (using embedded Derby database)
Description
If you have more than 2 Receive activities (with correlation) Ode will throw an internal
error on the 3rd one. The first 2 work.
See the attached project. I created a process that you can call 4 times to add 4 different numbers
together. Each time you call it you pass in an int value and a String that is used to identify the
instance. Each time you call it, the process will return the running sum of the previous inputs.
After the 4th input the process will complete. It works the 1st 2 times and hangs on the 3rd run.
The server console says, "INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 20" and prints this
stacktrace:
java.lang.IllegalArgumentException: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 20
at
org.apache.ode.bpel.engine.OutstandingRequestManager.associate(OutstandingRequestManager.java:145)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.inputMsgMatch(BpelRuntimeContextImpl.java:934)
at
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeInstance(PartnerLinkMyRoleImpl.java:220)
at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:241)
at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:408)
at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:439)
at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:441)
at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:411)
at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:405)
at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:218)
at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:404)
at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:401)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)