Hello,
thank you for your further explanation. That helps us a lot to be sure that we don't have a sleeping problem of race conditions through threading issues. I just have to further questions on that issue…
1) When examining the source code of Activiti, I noticed that there are actually two implementations of the org.activiti.engine.delegate.Expression, the org.activiti.engine.impl.el.FixedValue, and the org.activiti.engine.impl.el.JuelExpression. While the latter one seems to really do something with the passed VariableScope in the getValue() method, the first one does not use it at all. That appeared somehow weired to me related to the consideration of having thread issues. But then I figured that the name actually already suggests how it is handled. Since it's a fixed value, instances of org.activiti.engine.impl.el.FixedValue probably exists only once per workflow deployment and are shared amongst all process instances. Is that right?
2) In our class implementing the Java Service Task, which is shared amongst almost all Service Task elements in our workflow models, we are passing the map of process variables (retrieved from the DelegateExecution via the method getVariables()) to the OSGi service actually implementing the according task. Is that passing thread-safe, too? It should be right, because it's just a passing of a reference to a map and that map should exist per execution… Can you please confirm that thinking?
Thanks again for your hints.
Best regards
Timo Rohrberg