Issue 15637: Some Tokens consumed by Complex Gateways don’t reach end nodes (bpmn2-rtf) Source: (, ) Nature: Revision Severity: Significant Summary: ANTECEDENTS: i) Chapter/Section 7.1.1. Page 27 (“Understanding the Behavior of Diagrams”), it says: “A Start Event generates a token that MUST eventually be consumed at an End Event. (which MAY be implicit if not graphically displayed).”. -------------------------------------------------------------------------- ii) Chapter/Section 10.4.3. Page 254, it says: “All the tokens that were generated within the Process MUST be consumed by an End Event before the Process has been completed.” “For Processes without an End Event, a token entering a path-ending Flow Object will be consumed when the processing performed by the object is completed (i.e., when the path has completed), as if the token had then gone on to reach an End Event. When all tokens for a given instance of the Process are consumed, then the Process will reach a state of being completed.” -------------------------------------------------------------------------- iii) Chapter/Section 10.4.3. Page 257, it says: “All tokens that are generated at the Start Event for that Process MUST eventually arrive at an End Event.”. -------------------------------------------------------------------------- iv) Chapter/Section 13.1. Page 440, it says: “For a Process instance to become completed, all tokens in that instance MUST reach an end node, i.e., a node without outgoing Sequence Flows.” -------------------------------------------------------------------------- COMMENTS: These statements are not entirely correct because Complex Gateways can consume tokens and do not generate an outgoing token. These token “are lost” before they could reach and end node, but the Process instance can become complete anyway. In the waiting-for-reset phase the Complex Gateway “consumes a token from each incoming Sequence Flow that has a token and from which it had not yet consumed a token in the first phase …the Gateway might not produce any tokens in this phase and no exception is thrown.” (Table 13.5, p.454). Then, the tokens are consumed by the Gateway and will never reach any end node. For example, this is the normal behavior of a 3-of-5 discriminator, where the last two tokens will be consumed by the Gateway and lost. SUGGESTION: State that in order to be completed all tokes in a Process instance MUS be consumed, which is usually (normally) achieved when the tokens reach end nodes. Resolution: Revised Text: Actions taken: September 23, 2010: received issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 23 Sep 2010 19:01:16 -0400 To: Subject: Issue/Bug Report ******************************************************************************* Name: Eduardo Jara Employer: mailFrom: ejara@craftware.net Terms_Agreement: I agree Specification: BPMN 2.0 Beta 2 Section: 7.1.1 FormalNumber: dtc/2010-06-05 Version: 2.0 Doc_Year: 2010 Doc_Month: June Doc_Day: Day Page: 27 Title: Some Tokens consumed by Complex Gateways don.t reach end nodes Nature: Revision Severity: Significant CODE: 3TMw8 B1: Report Issue Description: ANTECEDENTS: i) Chapter/Section 7.1.1. Page 27 (.Understanding the Behavior of Diagrams.), it says: .A Start Event generates a token that MUST eventually be consumed at an End Event. (which MAY be implicit if not graphically displayed)... -------------------------------------------------------------------------- ii) Chapter/Section 10.4.3. Page 254, it says: .All the tokens that were generated within the Process MUST be consumed by an End Event before the Process has been completed.. .For Processes without an End Event, a token entering a path-ending Flow Object will be consumed when the processing performed by the object is completed (i.e., when the path has completed), as if the token had then gone on to reach an End Event. When all tokens for a given instance of the Process are consumed, then the Process will reach a state of being completed.. -------------------------------------------------------------------------- iii) Chapter/Section 10.4.3. Page 257, it says: .All tokens that are generated at the Start Event for that Process MUST eventually arrive at an End Event... -------------------------------------------------------------------------- iv) Chapter/Section 13.1. Page 440, it says: .For a Process instance to become completed, all tokens in that instance MUST reach an end node, i.e., a node without outgoing Sequence Flows.. -------------------------------------------------------------------------- COMMENTS: These statements are not entirely correct because Complex Gateways can consume tokens and do not generate an outgoing token. These token .are lost. before they could reach and end node, but the Process instance can become complete anyway. In the waiting-for-reset phase the Complex Gateway .consumes a token from each incoming Sequence Flow that has a token and from which it had not yet consumed a token in the first phase .the Gateway might not produce any tokens in this phase and no exception is thrown.. (Table 13.5, p.454). Then, the tokens are consumed by the Gateway and will never reach any end node. For example, this is the normal behavior of a 3-of-5 discriminator, where the last two tokens will be consumed by the Gateway and lost. SUGGESTION: State that in order to be completed all tokes in a Process instance MUS be consumed, which is usually (normally) achieved when the tokens reach end nodes.