In my process definitions, all my service tasks are async and this leaded me to deadlock problems as I mentioned in this topic.
I unchecked async checkbox of all my service tasks and give a try to see if this can solve my deadlock problem and bingo! all the deadlock problems have disappeared.
My design requirement doesn’t need to be async and actually it need to be run in sync(some may call sequential), I was making my custom service tasks as async just to see where the process execution has failed in case of the execution failure. If I don’t set them as async and if the process execution fails, all I can see was the highlighted start event in show diagram.
Another reason to make them as async was to detect the execution failure and cancel the process programmaticaly. I didnt find any other possible suitable solution to do this without using custom asyncexceptionhandler.
If I go back to my question, Is there any way to achieve these 2 requirements without setting my custom service tasks as async?