Issue 16948: Error in DecisionNodeActivation semantics (fuml-rtf) Source: Model Driven Solutions (Mr. Ed Seidewitz, ed-s(at)modeldriven.com) Nature: Uncategorized Issue Severity: Summary: : Semantics of a Foundational Subset for Executable UML Models (fUML), v1.0 (formal/2011-02-01) Subclause: 8.5.2.2.9 DecisionNodeActivation In the method for the DecisionNodeActivation::getDecisionInputFlowValue operation contains the statement: value = ((ObjectToken)(tokens.getValue(0))).value; Since a decision input flow must be an object flow, it would seem reasonable to be able to assume that this flow would only contain ObjectTokens. However, all tokens offered by ForkNodeActivations are wrapped in ForkTokens, which is directly a subclass of Token. If such a token is offered on a decision input flow, then the above cast will fail. To fix this, the above statement should be replaced with: value = tokens.getValue(0).getValue(); The getValue operation is defined for all types of tokens (it returns null for control tokens, but that would not be an issue here). Resolution: agreed Revised Text: In Subclause 8.5.2.2.9, in the getDecisionInputFlowValue operation, replace the statement value = ((ObjectToken)(tokens.getValue(0))).value; with value = tokens.getValue(0).getValue(); Actions taken: January 9, 2012: received issue January 7, 2013: closed issue Discussion: End of Annotations:===== m: Ed Seidewitz To: "issues@omg.org" Date: Mon, 9 Jan 2012 15:28:36 -0500 Subject: Error in DecisionNodeActivation semantics Thread-Topic: Error in DecisionNodeActivation semantics Thread-Index: AczPDUOyQ/LUgRvwTiGgOtbwn6QuSw== Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US X-Mailprotector-Decision: deliver X-Mailprotector-Connection: TLSv1|[10.1.50.226]|10.1.50.226|outbound.mailprotector.net|-0.992968|0.819556|0|white|ugly|2834|10|0|0 X-Mailprotector-Results: null_ptr clean X-Mailprotector-Score: 40 X-Mailprotector-IP-Analysis: 0, 10.1.50.226, Ugly c=0.819556 p=-0.992968 Source White X-Mailprotector-Scan-Diagnostics: 0-0-0-8114-c X-Mailprotector-ID: 8e537c30-25ca-474b-93a4-6da5b2ab799e Specification: Semantics of a Foundational Subset for Executable UML Models (fUML), v1.0 (formal/2011-02-01) Subclause: 8.5.2.2.9 DecisionNodeActivation In the method for the DecisionNodeActivation::getDecisionInputFlowValue operation contains the statement: value = ((ObjectToken)(tokens.getValue(0))).value; Since a decision input flow must be an object flow, it would seem reasonable to be able to assume that this flow would only contain ObjectTokens. However, all tokens offered by ForkNodeActivations are wrapped in ForkTokens, which is directly a subclass of Token. If such a token is offered on a decision input flow, then the above cast will fail. To fix this, the above statement should be replaced with: value = tokens.getValue(0).getValue(); The getValue operation is defined for all types of tokens (it returns null for control tokens, but that would not be an issue here).