Wow, that's a tough one...
Matthieu Riou (JIRA) wrote:
> [
> https://issues.apache.org/jira/browse/ODE-432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
> ]
>
> Matthieu Riou resolved ODE-432.
> -------------------------------
>
> Resolution: Fixed
> Assignee: Matthieu Riou
>
> This one was actually a bit tricky. When a receive that provides a two-way
> operation gets enabled, the outstanding request gets tracked to be matched
> with a reply. It also allows us to error if the scope exits before the reply
> is provided. A pick is more or less like several receives enabled at once, so
> in your case there were 3 outstanding requests being tracked (the fourth one
> being a one-way). When one of these outstanding request gets a reply, it also
> gets released along with the other ones in the pick. The bug occurs when a
> one-way is used in a pick to also declares two-ways: the one-way doesn't need
> a reply so the other outstanding requests don't get cleaned up.
>
> So far it's not necessarily an issue because everything gets disposed once
> the process completes. In this case however, the pick is in a loop. So after
> te one-way gets its request, we enable the pick again. And then we find that
> we have outstanding requests with identical partner link / operation /
> correlation tuples hanging around. So we error, thinking it's a design issue
> that creates a conflict.
>
> I've fixed it in the 1.X branch and trunk, now outstanding requests get
> properly cleaned even with a one-way.
>
>> One-way operation in pick activity leads to FaultException
>> ----------------------------------------------------------
>>
>> Key: ODE-432
>> URL: https://issues.apache.org/jira/browse/ODE-432
>> Project: ODE
>> Issue Type: Bug
>> Components: BPEL Runtime
>> Affects Versions: 1.2
>> Reporter: Alex Boisvert
>> Assignee: Matthieu Riou
>> Fix For: 1.3, 2.0
>>
>> Attachments: PickProcess.zip
>>
>>
>> On behalf of Σπύρος Αναστασόπουλος, and taken from
>> http://mail-archives.apache.org/mod_mbox/ode-user/200811.mbox/[EMAIL
>> PROTECTED]
>> I have an issue about the pick activity.
>> I wrote a process that schematically does the following
>> Receive
>> Initialize correlation set A
>> While true
>> Pick
>> First Operation - PickSpade (A)
>> Second Operation - PickClub (A)
>> Third Operation - PickHeart (A)
>> Fourth Operation - PickDiamond (A)
>> The first three operations are Request-Response and i can call them
>> without any problems
>> The last operation however is one-way and when it is called the
>> process fails with the message
>> 15:17:22,390 ERROR [PICK] org.apache.ode.bpel.common.FaultException:
>> {Selector p
>> linkInstnace={PartnerLinkInstance
>> partnerLinkDecl=OPartnerLink#53,scopeInstanceI
>> d=11370496},ckey={CorrelationKey setId=52,
>> values=[One]},opName=pickSpade,oneWay
>> =no,mexId=<null>,idx=0}
>> The opName in the message "pickSpade" is not the name of the one-way
>> operation.
>> I run the example under intalio-bpms-5.2.0.050 and under tomcat-6.0/ode 1.2.
>> I also tested with ActiveBPEL-5.0.2 and worked.
>