Skip to content

FOUR-6787 If more than two tasks end in an Intermediate Signal Throw Event Element, the flow will not be correctly completed - #240

Open
devmiguelangel wants to merge 3 commits into
developfrom
FOUR-6787
Open

devmiguelangel wants to merge 3 commits into
developfrom
FOUR-6787

Conversation

@devmiguelangel

@devmiguelangel devmiguelangel commented Oct 13, 2026 •

Copy link
Copy Markdown

Summary

If more than two tasks end in an Intermediate Signal Throw Event Element, the flow will not be correctly completed

An Intermediate Throw Event with two or more incoming sequence flows behaved like an AND-join. TransitionTrait::hasAllRequiredTokens() only fired the shared transition when every incoming state had a token, and one firing consumed one token from each incoming flow. When an exclusive or parallel split delivered a token on only some of those flows, the event never fired and the request stayed In Progress.

The event is no longer a join. IntermediateThrowEventTransition fires as soon as any incoming flow has a token and consumes exactly one token per firing, so each arriving token triggers the event and continues downstream. The graph is unchanged: one incoming state per sequence flow, all connected to the same transition. Token persistence and ThrowEventTokenPassed still happen on that transition, which keeps the previous event order for boundary and message tests.

flowchart LR
  taskA[FormTask1] --> inA[incomingState]
  taskB[FormTask2] --> inB[incomingState]
  taskC[FormTask3] --> inC[incomingState]
  inA --> transition[IntermediateThrowEventTransition]
  inB --> transition
  inC --> transition
  transition -->|"one token, any input"| endEvent[MessageEndEvent]
Loading

Before this change the transition waited until inA, inB, and inC all held a token. Now a token on any one of them is enough.

Related Tickets

FOUR-6787

@devmiguelangel devmiguelangel changed the title FOUR-6787 FOUR-6787 If more than two tasks end in an Intermediate Signal Throw Event Element, the flow will not be correctly completed Oct 13, 2026
@decisions-sonarqube

Copy link
Copy Markdown

@devmiguelangel devmiguelangel self-assigned this Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant