[jboss-svn-commits] JBL Code SVN: r31244 - labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/command.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jan 27 05:12:06 EST 2010


Author: kevin.conner at jboss.com
Date: 2010-01-27 05:12:06 -0500 (Wed, 27 Jan 2010)
New Revision: 31244

Modified:
   labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/command/AbstractMessageListener.java
Log:
Check for expected exception when rollback requested: JBESB-3158

Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/command/AbstractMessageListener.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/command/AbstractMessageListener.java	2010-01-27 09:35:42 UTC (rev 31243)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/command/AbstractMessageListener.java	2010-01-27 10:12:06 UTC (rev 31244)
@@ -22,6 +22,7 @@
 import org.jbpm.persistence.JbpmPersistenceException;
 import org.jbpm.persistence.db.DbPersistenceService;
 import org.jbpm.svc.Services;
+import org.jbpm.tx.TxService;
 
 /**
  * Based on the jBPM enterprise code, this abstract base class handles most of the
@@ -77,7 +78,23 @@
             }
             finally
             {
-                jbpmContext.close() ;
+                final TxService txService = jbpmContext.getServices().getTxService() ;
+                final boolean exceptionExpected = txService.isRollbackOnly() ;
+                try
+                {
+                    jbpmContext.close() ;
+                }
+                catch (final JbpmException je)
+                {
+                    if (exceptionExpected)
+                    {
+                        rollback(je) ;
+                    }
+                    else
+                    {
+                        throw je ;
+                    }
+                }
             }
         }
         catch (final StaleStateException sse)



More information about the jboss-svn-commits mailing list