[
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.