ODE
  1. ODE
  2. ODE-535

conflictingReceive fault is thrown where no error is expected

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.3.2
    • Fix Version/s: 1.3.4
    • Component/s: BPEL Runtime
    • Labels:
      None

      Description

      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.

        Activity

        Rafal Rusin created issue -
        Rafal Rusin made changes -
        Field Original Value New Value
        Attachment conflictingReceive-reproduction.diff [ 12401251 ]
        Alexis Midon made changes -
        Fix Version/s 1.3.1 [ 12313680 ]
        Fix Version/s 1.3 [ 12313165 ]
        Alexis Midon made changes -
        Affects Version/s 1.3.1 [ 12313680 ]
        Affects Version/s 1.3 [ 12313165 ]
        Alexis Midon made changes -
        Fix Version/s 1.3.2 [ 12313877 ]
        Fix Version/s 1.3.1 [ 12313680 ]
        Alexis Midon made changes -
        Fix Version/s 1.3.3 [ 12313905 ]
        Fix Version/s 1.3.2 [ 12313877 ]
        Alexis Midon made changes -
        Affects Version/s 1.3.2 [ 12313906 ]
        Affects Version/s 1.3.1 [ 12313680 ]
        Alex Boisvert made changes -
        Fix Version/s 1.3.4 [ 12314168 ]
        Fix Version/s 1.3.3 [ 12313905 ]
        Rafal Rusin made changes -
        Assignee Rafal Rusin [ rrusin ]
        Rafal Rusin made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Rafal Rusin
            Reporter:
            Rafal Rusin
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development