[ 
https://issues.apache.org/jira/browse/ODE-634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12739219#action_12739219
 ] 

William McCusker commented on ODE-634:
--------------------------------------

Short version: 

   Race condition between the child scope finishing and a new EH_EVENT SELECT

Long Version:

   When the event handler processes a message it submits a new SCOPE activity 
and then submits a new SELECT runnable. As part of the SELECT runnable the 
process checks if selectors for a given operation, port and partnerLink are 
registered to detect the standard bpel fault conflictingReceive. 

   This causes a race condition between the SCOPE and SELECT. If the SCOPE 
activity completes first there is no problem, however if the SELECT runnable 
runs before the SCOPE (and all its children) finish it will find that it 
someone has already registered the selectors and throws a conflicitingReceive 
fault. In this case EH_EVENT is detecting a  conflict with itself.

To get around this I have the EH_EVENT move the current outstanding receive 
into the reply map so that it will not detect a conflicting receive with itself.

As I look at another solution might be to delay creating the new SELECT till 
the SCOPE finishes. Would a termination channel listener do work?

> Event Handles not working
> -------------------------
>
>                 Key: ODE-634
>                 URL: https://issues.apache.org/jira/browse/ODE-634
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.3.2, 1.3.3, 2.0
>            Reporter: William McCusker
>         Attachments: account-sa.zip, account-soapui-project.xml, 
> event_handler_1x.patch, event_handler_trunk.patch
>
>
> When attempting to send a message to an event handler one of two 
> possibilities occur:
> 1.) Event Handler fails to receive message.
> 2.) message is receive but conflicting receive fault triggered.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to