[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