-
Bug
-
Resolution: Done
-
Major
-
jBPM 4.0.0.Beta2
-
None
With fork activities, child executions are created by calling executionImpl.createExecution (ForkActivity, line 56). In the end, ExecutionImpl.newChildExecution() creates an instance of ExecutionImpl. The issue is that this method should be redefined in the JpdlExecution class.
You get this error:
Exception in thread "main" org.jbpm.api.JbpmException: unsuppported extension org.jbpm.jpdl.internal.model.JpdlExecution
at org.jbpm.pvm.internal.model.ExecutionImpl.getExtension(ExecutionImpl.java:1021)
at org.jbpm.jpdl.internal.activity.TaskActivity.execute(TaskActivity.java:48)
at org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:57)
at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:589)
at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:562)
at org.jbpm.pvm.internal.model.ExecutionImpl.take(ExecutionImpl.java:444)
at org.jbpm.pvm.internal.model.ExecutionImpl.take(ExecutionImpl.java:448)
at org.jbpm.jpdl.internal.activity.ForkActivity.execute(ForkActivity.java:61)
at org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:57)
at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:589)
at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:562)
at org.jbpm.pvm.internal.model.ExecutionImpl.start(ExecutionImpl.java:201)
at org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd.execute(StartProcessInstanceInLatestCmd.java:63)
at org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd.execute(StartProcessInstanceInLatestCmd.java:39)
at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:54)
at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
at org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceByKey(ExecutionServiceImpl.java:72)
To fix it, in JpdlExecution, add this:
protected JpdlExecution newChildExecution()
{ return new JpdlExecution(); }