geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From djen...@apache.org
Subject svn commit: r158290 - geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java
Date Sun, 20 Mar 2005 03:37:21 GMT
Author: djencks
Date: Sat Mar 19 19:37:19 2005
New Revision: 158290

URL: http://svn.apache.org/viewcvs?view=rev&rev=158290
Log:
If a connection can't be enlisted, we must dispose of it before throwing an exception

Modified:
    geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java

Modified: geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java?view=diff&r1=158289&r2=158290
==============================================================================
--- geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java
(original)
+++ geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java
Sat Mar 19 19:37:19 2005
@@ -53,11 +53,16 @@
                 transactionContext.enlistResource(xares);
             }
         } catch (SystemException e) {
+            returnConnection(connectionInfo, ConnectionReturnAction.DESTROY);
             throw new ResourceException("Could not get transaction", e);
         } catch (RollbackException e) {
+            //transaction is marked rolled back, so the xaresource could not have been enlisted
+            next.returnConnection(connectionInfo, ConnectionReturnAction.RETURN_HANDLE);
             throw new ResourceException("Could not enlist resource in rolled back transaction",
e);
+        } catch (Throwable t) {
+            returnConnection(connectionInfo, ConnectionReturnAction.DESTROY);
+            throw new ResourceException("Unknown throwable when trying to enlist connection
in tx", t);
         }
-
     }
 
     /**
@@ -81,6 +86,8 @@
 
         } catch (SystemException e) {
             //maybe we should warn???
+            connectionReturnAction = ConnectionReturnAction.DESTROY;
+        } catch (IllegalStateException e) {
             connectionReturnAction = ConnectionReturnAction.DESTROY;
         }
 



Mime
View raw message