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

Reply via email to