AnsweredAssumed Answered

Child executions not removed when activity is interrupted

Question asked by jloureiro on Aug 2, 2012
Latest reply on Aug 3, 2012 by jloureiro
The image above represents how a part of my process is modelled:
  • There is a "normal" process flow which consists of completing a user task and proceeding.

  • Escalation emails are sent based on timers.

  • The normal process flow is not interrupted by escalation: the timer boundary events are non-interrupting.

  • Additionally, the normal process flow can be interrupted by a user. I modelled this by attaching an interrupting signal boundary event to the task and having a signal delivered upon some user action.
The process works as intended when the normal flow is followed: when the user task is completed, the process proceeds regardless of whether or not escalation emails have been sent and the executions associated with the escalation emails (if any) are destroyed upon leaving the inclusive gateway.

However, if the flow is interrupted by catching the signal, the executions associated with escalation emails, which are suspended on the inclusive gateway, are never destroyed (I know this by inspecting the Activity database, table 'act_ru_execution'). The original user task is interrupted as expected, though.

This causes problems later, as Activiti will fail to terminate the process instance due to the referential integrity constraints.

Is this the expected behaviour? Since the user task is interrupted by the signal, I expect the inclusive gateway not to wait anymore, since no other sequence flow will arrive.
Or is this a bad approach to my use case?