Unwanted Async Continuation Calls During Parallel Execution

During the execution of our BPMN flow we’re executing multiple async continuations within a parallel flow. When we our message is received and we call runtimeService.signal(exec.getId(), …) sometimes we encounter an optimistic locking exception. As a result of this we go back to the previous wait state which contains the message send. This causes us to resend a JMS message. We also retry the runtimeService.signal call in the onMessage which eventually works. This is leaving us with multiple unwanted sends even though we eventually finish the flow out. What can I do to modify the flow so that we handle the optimistic locking exception in a way that does not cause the previous send task to be run multiple times? Does the engine go back to the previous wait state for NullPointerExceptions as well? The issue is happening on “Run Problem” → “Receive Problem”


This tip, ie add a dummy variable at the start of your process may remove the optimistic locking exceptions…