ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rafal Rusin (JIRA)" <j...@apache.org>
Subject [jira] Created: (ODE-535) conflictingReceive fault is thrown where no error is expected
Date Mon, 02 Mar 2009 17:20:56 GMT
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
            Reporter: Rafal Rusin
             Fix For: 1.3


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.


Mime
View raw message