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

JbpmException thrown from Decision after exception in delegation class

    XMLWordPrintable

Details

    • Low
    • Hide

      A patch is propsed in the bug description

      Show
      A patch is propsed in the bug description

    Description

      A JbpmException with explanation "can't leave node 'xxx' without leaving transition" is thrown in the following case:

      1. A Decision node with a delegation class is defined in the processdefinition.xml.
      2. The delegation class throws an exception.
      3. The exception may or may not be handled by a custom ExceptionHandler.

      Explanation:
      The method Decision.execute(ExecutionContext) handles the decisionDelegation in its own block. The delegation class is executed and its result is used to choose the transition. If the delegation class throws an exception, the transition cannot be set. This produces later a JbpmException in Node.leave(Transtion).

      Proposed solution:
      This is a localized problem, restricted to one method only.
      Since the Token cannot find a proper transition, the process should be aborted. The following is the diff for a patch in Decision.java:

      149,155d148
      <
      < // Exceptions in delegation classes occur before a transition is chosen.
      < // Since no transition is possible, just abort the process.
      < // Custom exception handling may divert/end the process gracefully.
      < if(transition == null)

      { < return; < }

      Attachments

        Activity

          People

            aguizar_jira Alejandro Guizar (Inactive)
            jorgesoria Jorge Soria (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: