atom feed6 messages in org.oasis-open.lists.wsbpelRe: [wsbpel] Issue - 301 - Uninitiali...
FromSent OnAttachments
Monica J. MartinJun 20, 2006 2:46 pm 
Dieter Koenig1Jun 21, 2006 3:04 am 
Ron Ten-HoveJun 21, 2006 6:53 am 
Danny van der RijnJun 21, 2006 12:33 pm 
Monica J. MartinJun 27, 2006 11:53 am 
Dieter Koenig1Jun 28, 2006 6:58 am 
Subject:Re: [wsbpel] Issue - 301 - Uninitialized Partner Links
From:Monica J. Martin (Moni@Sun.COM)
Date:Jun 27, 2006 11:53:21 am
List:org.oasis-open.lists.wsbpel

Dieter, Have we (Ron and I) missed your response so we can prepare for tomorrow's discussion on #301? Can we proceed to define equivalent language discussing how uninitialized partnerLinks are to be handled? Otherwise, we leave it to implementation where different approaches may be taken. Thanks.

koenig: I have not yet fully understood the issue 301. My picture is as follows:

A. Variables and partner links are allowed to be declared but not used - Note this is also true for correlation sets and message exchanges

ten-hove: Agreed.

B. Variables and partner roles of partner links are *used* when their value is *read* - Variables are used when they are referenced in <from> / <invoke> / <reply> - Partner roles of partner links are used when they are referenced in <from> / <invoke>

C. Variables and partner roles of partner links can be uninitialized - If they are *used* anyway then uninitializedVariable/uninitializedPartnerRole is thrown

Questions:

1. Do we have agreement on A. & B. & C.? 2. If yes (1.), which part is left unclear by the spec?

ten-hove: The expected behaviour is unspecified. Consider the following:

<assign> <copy> <from partnerLink="foo" endpointReference="partnerRole"/> <to partnerLink="bar"/> </copy> </assign>

when the source partnerLink "foo" is uninitialized. According to section 8.1 (Variables):

An attempt during process execution to read a variable or, in the case of a message type variable, a part of a variable before it is initialized MUST result in the standard bpel:uninitializedVariable fault.

There is no equivalent language discussing how uninitialized partnerLinks are to be handled. The <copy> could cause a fault (but what kind?), or the copy could uninitialize the partnerRole of the partnerLink named "bar", and wait until the process attempts to reference the partnerRole of "bar" (and throws a uninitializedPartnerRole fault).

The specification does not answer these questions; implementors must choose, presumably by suiting their own tastes. Do we want to have such variability in implementations? As it stands, given the scenario outlined above, we could have three different behaviours, all for good reasons:

* The <copy> throws an uninitializedVariable fault. (The entire partnerLink is uninitialized) * The <copy> throws an uninitializedPartnerRole fault (the <from> role isn't initialized) * The <copy> doesn't throw a fault at all.

Are we happy with this variability? This seems worthy of opening an issue to discuss.

-Ron