[jboss-svn-commits] JBL Code SVN: r38376 - in labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta: tests/src/org/jboss/internal/soa/esb/rosetta/pooling and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 3 10:56:04 EDT 2013


Author: tcunning
Date: 2013-07-03 10:56:03 -0400 (Wed, 03 Jul 2013)
New Revision: 38376

Modified:
   labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java
   labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/tests/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPoolUnitTest.java
   labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/tests/src/org/jboss/internal/soa/esb/rosetta/pooling/MaxSessionsPerConnectionUnitTest.java
Log:
JBESB-3932
Need to take into account an expired transaction in testing XA/non-XA in JMSConnectionPool.


Modified: labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java	2013-06-26 21:40:54 UTC (rev 38375)
+++ labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPool.java	2013-07-03 14:56:03 UTC (rev 38376)
@@ -236,7 +236,7 @@
 
         final boolean transacted ;
         try {
-            transacted = (isXAAware && TransactionStrategy.getTransactionStrategy(true).isActive()) ;
+            transacted = (isXAAware && (TransactionStrategy.getTransactionStrategy(true).getTransaction() != null)) ;
         } catch (final TransactionStrategyException tse) {
             throw new ConnectionException("Failed to determine current transaction context", tse) ;
         }

Modified: labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/tests/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPoolUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/tests/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPoolUnitTest.java	2013-06-26 21:40:54 UTC (rev 38375)
+++ labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/tests/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsConnectionPoolUnitTest.java	2013-07-03 14:56:03 UTC (rev 38376)
@@ -715,6 +715,38 @@
         }
     }
     
+    @Test
+    public void testXaSessionTransactionExpiry()
+        throws Exception
+    {
+        final TransactionStrategy transactionStrategy = TransactionStrategy.getTransactionStrategy(true) ;
+        final MockJTATransactionStrategy jtaTransactionStrategy = new MockJTATransactionStrategy() ;
+        TransactionStrategy.setTransactionStrategy(jtaTransactionStrategy) ;
+        try
+        {
+            final int acknowledgeMode = JmsConnectionPool.XA_TRANSACTED ;
+            
+            final JmsConnectionPool pool = new JmsConnectionPool(getPoolEnv()) ;
+            
+            Assert.assertEquals("current pool free count", 0, pool.getFreeSessionsInPool(acknowledgeMode)) ;
+            Assert.assertEquals("current pool in use count", 0, pool.getInUseSessionsInPool(acknowledgeMode)) ;
+            
+            jtaTransactionStrategy.begin() ;
+            jtaTransactionStrategy.expireTransaction() ;
+            
+            final JmsSession session = pool.getSession() ;
+            
+            Assert.assertEquals("Session class", JmsXASession.class, session.getClass()) ;
+            
+            Assert.assertEquals("current pool free count", 0, pool.getFreeSessionsInPool(acknowledgeMode)) ;
+            Assert.assertEquals("current pool in use count", 1, pool.getInUseSessionsInPool(acknowledgeMode)) ;
+        }
+        finally
+        {
+            TransactionStrategy.setTransactionStrategy(transactionStrategy) ;
+        }
+    }
+    
     private Map<String, String> getPoolEnv()
     {
         final Map<String, String> env = new HashMap<String, String>() ;
@@ -979,21 +1011,21 @@
     
     private static final class MockJTATransactionStrategy extends NullTransactionStrategy
     {
-        private Object tx ;
+        private Boolean tx ;
         private ArrayList<XAResource> resources = new ArrayList<XAResource>() ;
         private ArrayList<Synchronization> synchronizations = new ArrayList<Synchronization>() ;
 
         public void begin()
             throws TransactionStrategyException
         {
-            tx = new Object() ;
+            tx = Boolean.TRUE ;
         }
 
         @Override
         public boolean isActive()
             throws TransactionStrategyException
         {
-            return (tx != null) ;
+            return ((tx != null) && tx.booleanValue()) ;
         }
 
         @Override
@@ -1046,6 +1078,11 @@
         {
             return resources.size() ;
         }
+        
+        public void expireTransaction()
+        {
+            tx = Boolean.FALSE ;
+        }
     }
     
     public static junit.framework.Test suite()

Modified: labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/tests/src/org/jboss/internal/soa/esb/rosetta/pooling/MaxSessionsPerConnectionUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/tests/src/org/jboss/internal/soa/esb/rosetta/pooling/MaxSessionsPerConnectionUnitTest.java	2013-06-26 21:40:54 UTC (rev 38375)
+++ labs/jbossesb/branches/JBESB_4_11_CP2/product/rosetta/tests/src/org/jboss/internal/soa/esb/rosetta/pooling/MaxSessionsPerConnectionUnitTest.java	2013-07-03 14:56:03 UTC (rev 38376)
@@ -140,6 +140,7 @@
         // will get filled into connections up to the maxSesionsPerConnection, which is 3 for this test.
 
         MockTransactionStrategy.isActive = true;
+        MockTransactionStrategy.transactionObject = new Object() ;
         try {
             TransactionStrategy.setTransactionStrategy(new MockTransactionStrategy());
 



More information about the jboss-svn-commits mailing list