Subject: Issue - 209 - Inconsistent repeated compensation fault behavior
This issue has been added to the wsbpel issue list with a status of "received". The status will be changed to "open" if the TC accepts it as identifying a bug in the spec or decides it should be accepted specially. Otherwise it will be closed without further consideration (but will be marked as "Revisitable")
The issues list is posted as a Technical Committee document to the OASIS WSBPEL TC pages on a regular basis. The current edition, as a TC document, is the most recent version of the document entitled in the "Issues" folder of the WSBPEL TC document list - the next posting as a TC document will include this issue. The list editor's working copy, which will normally include an issue when it is announced, is available at this constant URL.
Section 13.3.3 states:
"Invoking a compensation handler that has not been installed is equivalent to the empty activity (it is a no-op)—this ensures that fault handlers do not have to rely on state to determine which nested scopes have completed successfully."
Section 14.7 states:
"If an installed compensation handler is invoked more than once during the execution of a process instance, a compliant implementation MUST throw the standard bpws:repeatedCompensation fault."
The point of the 13.3.3 language was to let programmers not worry if a
compensation handler for a particular scope has been installed or not.
But now we have a situation where if a scope's compensation handlers
didn't happen to be installed and you call it twice then nothing bad
happens. But if the scope's compensation handler did happen to be
installed and you call it twice then you get a fault. This seems to me
to be inconsistent.
Submitter’s proposal: We should change the language to specify that the first time you call the compensation handler for a scope then if the scope doesn't have a compensation handler nothing happens, if the scope does have a compensation handler then compensation occurs. However the second time you call for compensation of a scope it is an error in all cases. Note that this would also apply to calling <compensate/>. E.g. two calls to <compensate/> in the same scope is an error.
Changes: 20 May 2005 - new issue
To comment on this issue (including whether it should be accepted), please follow-up to this announcement on the email@example.com list (replying to this message should automatically send your message to that list), or ensure the subject line as you send it starts "Issue - 209 - [anything]" or is a reply to such a message. If you want to formally propose a resolution to an open issue, please start the subject line "Issue - 209 - Proposed resolution", without any Re: or similar.
To add a new issue, see the issues procedures document (but the address for new issue submission is the sender of this announcement).
Choreology Anti virus scan completed