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();