L3 - Default
Various events (e.g. signal, escalation) that synchronously cancel the triggering activity do not actually stop execution at that activity.
For example, see the attached process model.
- when "In Subprocess Task" is completed, then only task "Event Subprocess Task" should be active
- when "In Subprocess Task" is completed, both "Event Subprocess Task" and "After Subprocess Task" are active
- the execution tree is in an invalid state: there is the process instance (A) and a scope execution (B) for the event subprocess. B executes "Event Subprocess Task", A executes "After Subprocess Task"
Similar cases can be constructed with escalation events (though a little less obvious) and message events (though sending messages within one process instances is not foreseen by BPMN).
- the decision criterion whether to continue execution after throwing an event is either not existent (signal events) or too weak (escalation events)
- the Execution#isEnded flag should be checked before continuing execution; perhaps there is a good way to do this in a cross-cutting manner
Test case: https://github.com/camunda/camunda-bpm-platform/commit/9a8b6326a4abca1e22ea3dd7052f297b3446e677
This is the controller panel for Smart Panels app
- is related to
CAM-9220 Throwing end event in a event subprocess does not end the event subprocess as expected