You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Alex Boisvert (JIRA)" <ji...@apache.org> on 2009/08/19 17:57:15 UTC
[jira] Updated: (ODE-535) conflictingReceive fault is thrown where
no error is expected
[ https://issues.apache.org/jira/browse/ODE-535?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Boisvert updated ODE-535:
------------------------------
Fix Version/s: (was: 1.3.3)
1.3.4
> conflictingReceive fault is thrown where no error is expected
> -------------------------------------------------------------
>
> Key: ODE-535
> URL: https://issues.apache.org/jira/browse/ODE-535
> Project: ODE
> Issue Type: Bug
> Components: BPEL Runtime
> Affects Versions: 1.3.2
> Reporter: Rafal Rusin
> Fix For: 1.3.4
>
> Attachments: conflictingReceive-reproduction.diff
>
>
> I made a following process:
> <bpws:receive createInstance="yes" operation="initiate">
> <bpws:correlations>
> <bpws:correlation initiate="yes"/>
> </bpws:correlations>
> </bpws:receive>
> <bpws:reply operation="initiate"/>
> <bpws:scope>
> <bpws:eventHandlers>
> <bpws:onEvent operation="initiate">
> <bpws:correlations>
> <bpws:correlation initiate="no"/>
> </bpws:correlations>
> <bpws:scope>
> <bpws:sequence>
> <bpws:reply operation="initiate"/>
> </bpws:sequence>
> </bpws:scope>
> </bpws:onEvent>
> </bpws:eventHandlers>
> <bpws:sequence>
> <bpws:wait>
> <bpws:for><![CDATA['PT30M']]></bpws:for>
> </bpws:wait>
> </bpws:sequence>
> </bpws:scope>
> Then I sent two requests with delay 1 second:
> initiate 101
> wait 1 second
> initiate 101
> A delay is for not causing conflictingRequest fault (which is not distinguished by ODE and thrown as conflictingReceive according to this: http://cwiki.apache.org/confluence/display/ODExSITE/WS-BPEL+2.0+Specification+Compliance).
> For second request I got a conflictingReceive fault.
> However, here, no error should be thrown.
> Here's a stacktrace for throwing conflictingReceive:
> 17:18:44,223 | ERROR | ODEServer-1 | BpelRuntimeContextImpl | eronimo.kernel.log.GeronimoLog 108 | conflictingReceive
> java.lang.Exception
> at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.select(BpelRuntimeContextImpl.java:333)
> at org.apache.ode.bpel.runtime.EH_EVENT$SELECT.run(EH_EVENT.java:137)
> at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
> at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
> at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:870)
> at org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeInstance(PartnerLinkMyRoleImpl.java:240)
> at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:224)
> at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:392)
> at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:391)
> at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:388)
> at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:386)
> at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:380)
> at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:208)
> at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:379)
> at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:376)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> So, I think an OutstandingRequestManager may incorrectly throw an exception on select registration, while there should be an error later on receiving an actual request.
> This will allow to dispatch a request via reply during onevent without any fault.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.