Is this right?Yes, fork-join have to be fulle nested.... 3 from fork -> 3 to join
But this behaviour wouldn't explain why it works with ended B, but not otherwise...The flow you describe is unsupported and thus the behaviour is undefined. Finding an explanation is (imo) therefor not a high priority.
The tests are in jbpm.3/jpdl/jar/src/test
Is this right? But this behaviour wouldn't explain why it works with ended B, but not otherwise...
Without delving into the code, it makes sense to me.
If B has completed, then the associated token will have ended.
Hence, when the other tokens reach the join, all the tokens are accounted for and the parent token can advance.
If B is not yet complete, then the parent will end up waiting (indefinitely) for the token as, without any further tokens ending at the join, there is no trigger to release the parent token.
Is there any workaround?
Perhaps a custom node on one of the fork transitions can generate the task?
I would not go for such 'hacks'.... most of the time these 'issues' can be resolved by looking that the process in a different way........
Thank you both for your quick answers.
I know understand the behaviour of this situation and would agree with kukeltje. I can make a restriction here for the analyst and ask him to design processes in different ways.