You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2012/11/07 15:34:48 UTC

svn commit: r1406657 - in /activemq/trunk/activemq-pool/src: main/java/org/apache/activemq/pool/PooledConnectionFactory.java main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java test/java/org/apache/activemq/pool/XAConnectionPoolTest.java

Author: tabish
Date: Wed Nov  7 14:34:47 2012
New Revision: 1406657

URL: http://svn.apache.org/viewvc?rev=1406657&view=rev
Log:
fix issue introduced in https://issues.apache.org/jira/browse/AMQ-4019 for XA connections.

Modified:
    activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java
    activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java
    activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/XAConnectionPoolTest.java

Modified: activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java?rev=1406657&r1=1406656&r2=1406657&view=diff
==============================================================================
--- activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java (original)
+++ activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java Wed Nov  7 14:34:47 2012
@@ -130,7 +130,7 @@ public class PooledConnectionFactory imp
                 public ConnectionPool makeObject(ConnectionKey key) throws Exception {
                     ActiveMQConnection delegate = createConnection(key);
 
-                    ConnectionPool connection = new ConnectionPool(delegate);
+                    ConnectionPool connection = createConnectionPool(delegate);
                     connection.setIdleTimeout(getIdleTimeout());
                     connection.setExpiryTimeout(getExpiryTimeout());
                     connection.setMaximumActiveSessionPerConnection(getMaximumActiveSessionPerConnection());
@@ -484,4 +484,16 @@ public class PooledConnectionFactory imp
      */
     public void setPoolFactory(ObjectPoolFactory<?> factory) {
     }
+
+    /**
+     * Delegate that creates each instance of an ConnectionPool object.  Subclasses can override
+     * this method to customize the type of connection pool returned.
+     *
+     * @param connection
+     *
+     * @return instance of a new ConnectionPool.
+     */
+    protected ConnectionPool createConnectionPool(ActiveMQConnection connection) {
+        return new ConnectionPool(connection);
+    }
 }

Modified: activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java?rev=1406657&r1=1406656&r2=1406657&view=diff
==============================================================================
--- activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java (original)
+++ activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java Wed Nov  7 14:34:47 2012
@@ -49,6 +49,7 @@ public class XaPooledConnectionFactory e
         this.transactionManager = transactionManager;
     }
 
+    @Override
     protected ConnectionPool createConnectionPool(ActiveMQConnection connection) {
         return new XaConnectionPool(connection, getTransactionManager());
     }

Modified: activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/XAConnectionPoolTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/XAConnectionPoolTest.java?rev=1406657&r1=1406656&r2=1406657&view=diff
==============================================================================
--- activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/XAConnectionPoolTest.java (original)
+++ activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/XAConnectionPoolTest.java Wed Nov  7 14:34:47 2012
@@ -33,6 +33,7 @@ import javax.transaction.Transaction;
 import javax.transaction.TransactionManager;
 import javax.transaction.xa.XAResource;
 import org.apache.activemq.ActiveMQXAConnectionFactory;
+import org.apache.activemq.ActiveMQXASession;
 import org.apache.activemq.command.ActiveMQTopic;
 import org.apache.activemq.test.TestSupport;
 
@@ -122,6 +123,11 @@ public class XAConnectionPoolTest extend
 
         TopicConnection connection = (TopicConnection) pcf.createConnection();
         TopicSession session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
+
+        assertTrue(session instanceof PooledSession);
+        PooledSession pooledSession = (PooledSession) session;
+        assertTrue(pooledSession.getInternalSession() instanceof ActiveMQXASession);
+
         TopicPublisher publisher = session.createPublisher(topic);
         publisher.publish(session.createMessage());