Peter Horvath [http://community.jboss.org/people/h.peter] created the discussion

"Joining of non-concurrent decision paths seems to be broken in 4.4"

To view the discussion, visit: http://community.jboss.org/message/555138#555138

--------------------------------------------------------------
Hello All,

We have a quite complicated process definion with a lot of cases where a step 
has to be executed only on specific condition - something like the following 
diagram (see attached full example process definition JPDL file):

 http://community.jboss.org/servlet/JiveServlet/showImage/4429/ForkJoinTest.png 
 
http://community.jboss.org/servlet/JiveServlet/downloadImage/4429/450-189/ForkJoinTest.png
 

We used join nodes with *multiplicity="1"* setting to join the two possible 
outcome paths of the decision node:

*<join g="347,51,48,48" multiplicity="1" name="join1">
      <transition g="424,76:-7,-17" name="to join2" to="join2"/>
</join>*

This approach used to work OK with JBPM 4.3 but it fails with version 4.4.

It seems that the handling of join nodes has been changed in this version: the 
first join node sets state to ended on the incoming execution which is not 
destroyed at that step but is delegated through to the outgoing transition, so 
the next join node (the last one before the end in the example) fails with the 
following exception:

Exception in thread "main" org.jbpm.api.JbpmException: 
execution[ForkJoinTest.10001.to script2.10002] is not active: ended
    at 
org.jbpm.pvm.internal.model.ExecutionImpl.checkActive(ExecutionImpl.java:1084)
    at org.jbpm.pvm.internal.model.ExecutionImpl.take(ExecutionImpl.java:481)
    at 
org.jbpm.jpdl.internal.activity.ForkActivity.execute(ForkActivity.java:95)
    at 
org.jbpm.jpdl.internal.activity.ForkActivity.execute(ForkActivity.java:46)
    at 
org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
    at 
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:672)
    at 
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:632)
    at org.jbpm.pvm.internal.model.ExecutionImpl.start(ExecutionImpl.java:217)
    at 
org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd.execute(StartProcessInstanceInLatestCmd.java:63)
    at 
org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd.execute(StartProcessInstanceInLatestCmd.java:36)
    at 
org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
    at 
org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
    at 
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
    at 
org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)
    at 
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
    at 
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
    at 
org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:56)
    at 
org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceByKey(ExecutionServiceImpl.java:67)


For me, this seems to be a bug - clearly, the behaviour of JBPM has been 
changed between version 4.3 and 4.4. The attached process definition is 
executed correctly with JBPM 4.3.

What do you think about this?

Regards,
Peter

--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/555138#555138]

Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to