As part of our requirements, we have a great need for exit citerion. During our tests we have noticed a behavior that we did not expect. In fact, consider the following flow:
An instance of B is created every time we complete C and all of them are terminated when A is completed.
Now, the issue is that, depending on which task we perform first, we are able to create unlimited B or none:
- If we start by completing A, then if we complete C, B is never created (even if we complete C several times)
- If we start by completing C, then B is created, then if we complete A, B is terminated. Then if we complete another C, then B is created again. This is true even if we complete several A in a row without completing any C.
Now, we either expected that we would never be able to create a B after A is completed or always but not this behavior.
Does anyone have an explanation for this behavior? It seems to be linked to the state of the task, if it is in “available” the first time the exit criteria is met, then we cannot recreate any, if it is “active”, then we cannot recreate as many as we want.