[Jboss-cvs] JBossAS SVN: r55018 - branches/Branch_4_0/testsuite/src/main/org/jboss/test/jca/test

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Aug 1 23:42:45 EDT 2006


Author: weston.price at jboss.com
Date: 2006-08-01 23:42:45 -0400 (Tue, 01 Aug 2006)
New Revision: 55018

Modified:
   branches/Branch_4_0/testsuite/src/main/org/jboss/test/jca/test/XATxConnectionManagerUnitTestCase.java
Log:
[JBAS-3336]Destroy a connection where XA enlistment fails and do not return the 
connection to the pool. Unit test support.

Modified: branches/Branch_4_0/testsuite/src/main/org/jboss/test/jca/test/XATxConnectionManagerUnitTestCase.java
===================================================================
--- branches/Branch_4_0/testsuite/src/main/org/jboss/test/jca/test/XATxConnectionManagerUnitTestCase.java	2006-08-02 03:42:16 UTC (rev 55017)
+++ branches/Branch_4_0/testsuite/src/main/org/jboss/test/jca/test/XATxConnectionManagerUnitTestCase.java	2006-08-02 03:42:45 UTC (rev 55018)
@@ -27,6 +27,7 @@
 import javax.resource.spi.ConnectionRequestInfo;
 import javax.transaction.RollbackException;
 import javax.transaction.TransactionManager;
+import javax.transaction.xa.XAException;
 
 import org.jboss.logging.Logger;
 import org.jboss.resource.connectionmanager.CachedConnectionManager;
@@ -38,6 +39,7 @@
 import org.jboss.test.JBossTestCase;
 import org.jboss.test.jca.adapter.TestConnection;
 import org.jboss.test.jca.adapter.TestConnectionRequestInfo;
+import org.jboss.test.jca.adapter.TestManagedConnection;
 import org.jboss.test.jca.adapter.TestManagedConnectionFactory;
 import org.jboss.tm.TransactionManagerLocator;
 import org.jboss.tm.TxUtils;
@@ -305,4 +307,43 @@
      }
      assertTrue("Connection still enlisted in tx!", !c.isInTx());
   }
+  
+  
+  public void testFailedStartTx() throws Exception
+  {
+     TestManagedConnection.setFailInStart(false, XAException.XAER_RMFAIL);
+     tm.begin();
+     TestConnection conn = null;
+     TestConnection conn2 = null;
+     
+     try
+     {
+        assertTrue("Connection in pool!", cm.getPoolingStrategy().getConnectionCount() == 0);
+        conn = (TestConnection)cm.allocateConnection(mcf, cri);
+        
+        //One should have been created
+        assertTrue(cm.getPoolingStrategy().getConnectionCount() == 1);
+
+        TestManagedConnection.setFailInStart(true, XAException.XAER_RMFAIL);
+        
+        conn2 = (TestConnection)cm.allocateConnection(mcf, cri);
+        
+        fail("Should not be here.");
+     
+     }
+     
+     catch (Throwable e)
+     {
+     }      
+     
+     conn.close();
+     
+     assertTrue(conn2 == null);            
+     assertTrue(cm.getPoolingStrategy().getConnectionCount() == 1);
+     
+
+     
+  }
+  
+
 }




More information about the jboss-cvs-commits mailing list