[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