Legacy Issue Number: 14992
Source: NIST ( Conrad Bock)
UML input pins do not accept more tokens than their actions can
immediately consume. The execution engine should reflect this.
The Activities, Action, Semantics, item 1, says "The object flow
prerequisite is satisfied when all of the input pins are offered all
necessary tokens and accept them all at once, precluding them from being
consumed by any other actions. This ensures that multiple action
executions competing for tokens do not accept only some of the tokens
they need to begin, causing deadlock as each execution waits for tokens
that are already taken by others."
The "necessary tokens" in the first sentence above are the ones needed
to execute the actions (meeting the minimum multiplicity), but should
include any additional ones offered up the maximum multiplicity. Only
these are accepted by the input pins, then immediately consumed by the
action. The second sentence gives the motivation, which is to avoid
having tokens in input pins that are not immediately consumed. This
would prevent those tokens from being used to execute other actions,
potentially creating deadlock or starvation. Deadlock is discussed more
in issue 7221 of the UML 2.0 FTF report
This is also clarified in the revised text for UML RTF issue 13914.
Reported: FUML 1.0b2 — Sun, 10 Jan 2010 05:00 GMT
Disposition: Resolved — FUML 1.0
The resolution to Issue 14550, in response to UML Issue 13914, changes the fUML semantics so that the fUML semantics reflect the constraint discussed in the issue.
Updated: Sat, 7 Mar 2015 08:56 GMT