Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-2296

Fork activities create the wrong type of child executions

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • jBPM 4.0.CR1
    • jBPM 4.0.0.Beta2
    • Runtime Engine
    • 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(); }

            aguizar_jira Alejandro Guizar (Inactive)
            alxsei Alexis Seigneurin (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: