OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Dead Path Elimination and Join Conditions


This is a question dealing with a pathological condition that the spec allows that I think we should disallow.  I wanted to get some opinions before I raised it as a bug.  Currently, it is legal to have a joinCondition which negates dead-path elimination.  The simplest way to do this is to have an activity with one incoming link and whose joinCondition is not($incoming).  A more detailed expression of this follows.  Apologies if the syntax isn't quite right.

<flow suppressJoinFailure="yes">
    <links>
       <link name="first2second"/>
       <link name="second2third"/>
    </links>

    <
someActivityname="first">
       <sources>
          <source linkName="
first2second">
             <transitionCondition>
                false
             </transitionCondition>
       </sources>
    </
someActivity>

    <someActivityname="second">
       <sources>
          <source linkName="
second2third">
       </sources>
       <targets>
          <target linkName="
first2second"/>
       </targets>
    </
someActivity>

    <someActivityname="third">
       <targets>
          <joinCondition>
             not(getLinkStatus("second2third"))
          </joinCondition>
          <target linkName="
second2third"/>
       </targets>
    </
someActivity>
</flow>

A flow from first to second to third.  The transition from "first" to "second" has some condition.  If it is false, "second" will not evaluate.  Yet according to my reading of the spec this merely sets the link status of "second2third" to false, which in turn causes "third" to execute. 

This is in contradiction with my understanding of dead-path elimination.  I would prefer to disallow joinConditions whose expression does not require a true input in order that the join condition evaluate to true.  Comments?
  

 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]