[jbpm-commits] JBoss JBPM SVN: r5072 - jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/jta.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Jun 22 07:18:53 EDT 2009


Author: tom.baeyens at jboss.com
Date: 2009-06-22 07:18:53 -0400 (Mon, 22 Jun 2009)
New Revision: 5072

Modified:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/jta/JtaTransactionInterceptor.java
Log:
JBPM-2339 JBPM-2322 added support for existing JTA transactions in jboss configuration

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/jta/JtaTransactionInterceptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/jta/JtaTransactionInterceptor.java	2009-06-22 11:14:05 UTC (rev 5071)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/jta/JtaTransactionInterceptor.java	2009-06-22 11:18:53 UTC (rev 5072)
@@ -53,6 +53,10 @@
     }
     log.debug("jta transaction status: "+JtaStatusHelper.toString(status));
     
+    if (status == Status.STATUS_ACTIVE) {
+      return executeInExistingTx(command);
+    }
+    
     if ( (status != Status.STATUS_NO_TRANSACTION) 
          && (status != Status.STATUS_COMMITTED) 
          && (status != Status.STATUS_ROLLEDBACK)
@@ -60,6 +64,14 @@
       throw new JbpmException("invalid transaction state: "+JtaStatusHelper.toString(status));
     }
 
+    return executeInNewTx(command, jtaTransaction, status);
+  }
+
+  protected <T> T executeInExistingTx(Command<T> command) {
+    return next.execute(command);
+  }
+
+  protected <T> T executeInNewTx(Command<T> command, JtaTransaction jtaTransaction, int status) {
     Transaction suspendedTransaction = null;
     if ((status == Status.STATUS_COMMITTED) || (status == Status.STATUS_ROLLEDBACK)) {
       suspendedTransaction = jtaTransaction.suspend();
@@ -87,5 +99,5 @@
     
     return (T) returnValue;
   }
-
+  
 }




More information about the jbpm-commits mailing list