Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-5517

Seam exception and transaction handling in JBPM integration is not correct for failed EL expression evaluation

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • EAP_EWP 5.1.1
    • EAP 5.0.1, EAP_EWP 5.1.0
    • Seam2
    • Release Notes
    • Hide
      If any exception occurred while a Seam EL expression was being evaluated during the jbpm-jpdl process definition, JBPM's transaction handling sometimes committed transactions that should have been rolled back. Rollback only occurred on the Seam side, because Seam tried to close the JBPM Context while the JBPM process was committing. Seam now closes the JPBM context immediately after rolling back the transaction, and the dirty commits no longer occur.
      Show
      If any exception occurred while a Seam EL expression was being evaluated during the jbpm-jpdl process definition, JBPM's transaction handling sometimes committed transactions that should have been rolled back. Rollback only occurred on the Seam side, because Seam tried to close the JBPM Context while the JBPM process was committing. Seam now closes the JPBM context immediately after rolling back the transaction, and the dirty commits no longer occur.
    • Documented as Resolved Issue

      Seam is fully transactional framework and integration with JBPM 3 doesn't fully respect this. If an exception happens in parsing or evaluating of EL expression specified in JBPM process definition (like in action execution), JBPM context and related dirty operations in JBPM persistence doesn't follow the Seam processes for exception handling - rollback is done on Seam side, but while closing JBPM context, JBPM process is trying to commit dirty state in followed transaction, which Seam opens for post process exception handling and destroying of contexts at HTTP request end lifecycle.

      For that case there is requirement on Seam side to close JBPM context while Seam is doing rollback and not later when new transaction is started.

      Current Seam handling only catches EL exceptions which is individually handled by JSF on frontend. This is of course bad in case of Seam asynchronous invocation in JBPM process definition, because it is not invoked in JSF context and root exception is swallowed. Related issue for asynchronous processing is JBPAPP-5410.

              mnovotny@redhat.com Marek Novotny
              mnovotny@redhat.com Marek Novotny
              Laura Bailey Laura Bailey
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: