Details
-
Bug
-
Resolution: Done
-
Major
-
jBPM 6.0.0.Beta5
-
None
Description
event subprocess can declare local properties (instead to use main process variables).
Infact i can receive and correctly save received event payload to local defined variable.
But when subprocess pass throw any waiting node (for example timer event) local variables are not persisted and further use of them fail because they result to be null.
This cause event subprocess to be almost unuseful because they can only use global variables causing uncontrolled side effects when multiple event subprocess run in parallel (as in the nature of event subprocesses).
I noticed that the class org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller in method readNodeInstance has switch case on all different type of nodes to be unmarshalled.
in case of EVENT_SUBPROCESS_NODE the variablescopeinstance is not restored like in case of COMPOSITE_CONTEXT_NODE.
In the marshaller method (writeNodeinstanceContent) the variablescopeinstance is stored for EVENT_SUBPROCESS_NODE but then is not restored during unmarshalling so my suspect is about this class but i don't know enough the runtime to be sure about it.
Thanks