You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2005/02/20 20:37:38 UTC

svn commit: r154559 - in geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context: InheritableTransactionContext.java TransactionContext.java

Author: djencks
Date: Sun Feb 20 11:37:37 2005
New Revision: 154559

URL: http://svn.apache.org/viewcvs?view=rev&rev=154559
Log:
Clarify and repair meaning of isActive.  This fixes a connection pool leak when a connection handle is closed after the transaction it is enrolled in is marked rollback only

Modified:
    geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/InheritableTransactionContext.java
    geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/TransactionContext.java

Modified: geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/InheritableTransactionContext.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/InheritableTransactionContext.java?view=diff&r1=154558&r2=154559
==============================================================================
--- geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/InheritableTransactionContext.java (original)
+++ geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/InheritableTransactionContext.java Sun Feb 20 11:37:37 2005
@@ -57,7 +57,8 @@
 
     public boolean isActive() {
         try {
-            return txnManager.getStatus() == Status.STATUS_ACTIVE;
+            int status = txnManager.getStatus();
+            return status == Status.STATUS_ACTIVE || status == Status.STATUS_MARKED_ROLLBACK;
         } catch (SystemException e) {
             return false;
         }

Modified: geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/TransactionContext.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/TransactionContext.java?view=diff&r1=154558&r2=154559
==============================================================================
--- geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/TransactionContext.java (original)
+++ geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/context/TransactionContext.java Sun Feb 20 11:37:37 2005
@@ -167,6 +167,11 @@
         return managedConnections.get(key);
     }
 
+    /**
+     * determines if the transaction is in a pre-prepared state
+     * of STATUS_ACTIVE or STATUS_MARKED_ROLLBACK.
+     * @return true if more work can be done in the transaction (although it might be forced to roll back)
+     */
     public abstract boolean isActive();
 
     public abstract Transaction getTransaction();