You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2010/05/06 14:23:28 UTC
svn commit: r941692 -
/activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/PooledTopicPublisherTest.java
Author: gtully
Date: Thu May 6 12:23:28 2010
New Revision: 941692
URL: http://svn.apache.org/viewvc?rev=941692&view=rev
Log:
test for pooled connection with inactive timouet on connection, close still works ok
Modified:
activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/PooledTopicPublisherTest.java
Modified: activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/PooledTopicPublisherTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/PooledTopicPublisherTest.java?rev=941692&r1=941691&r2=941692&view=diff
==============================================================================
--- activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/PooledTopicPublisherTest.java (original)
+++ activemq/trunk/activemq-pool/src/test/java/org/apache/activemq/pool/PooledTopicPublisherTest.java Thu May 6 12:23:28 2010
@@ -16,6 +16,9 @@
*/
package org.apache.activemq.pool;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
import javax.jms.ExceptionListener;
import javax.jms.JMSException;
import javax.jms.Session;
@@ -23,9 +26,13 @@ import javax.jms.TopicConnection;
import javax.jms.TopicPublisher;
import javax.jms.TopicSession;
+import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.broker.BrokerService;
+import org.apache.activemq.broker.TransportConnector;
import org.apache.activemq.command.ActiveMQTopic;
import org.apache.activemq.test.TestSupport;
+import org.apache.activemq.util.SocketProxy;
/**
* @version $Revision$
@@ -59,6 +66,36 @@ public class PooledTopicPublisherTest ex
assertEquals(listener, connection.getExceptionListener());
}
+ public void testPooledConnectionAfterInactivity() throws Exception {
+ BrokerService broker = new BrokerService();
+ TransportConnector networkConnector = broker.addConnector("tcp://localhost:0");
+ broker.setPersistent(false);
+ broker.setUseJmx(false);
+ broker.start();
+
+ SocketProxy proxy = new SocketProxy(networkConnector.getConnectUri());
+
+ PooledConnectionFactory pcf = new PooledConnectionFactory();
+ String uri = proxy.getUrl().toString() + "?trace=true&wireFormat.maxInactivityDuration=500&wireFormat.maxInactivityDurationInitalDelay=500";
+ pcf.setConnectionFactory(new ActiveMQConnectionFactory(uri));
+
+ PooledConnection conn = (PooledConnection) pcf.createConnection();
+ ActiveMQConnection amq = conn.getConnection();
+ final CountDownLatch gotException = new CountDownLatch(1);
+ //amq.set
+ conn.setExceptionListener(new ExceptionListener() {
+ public void onException(JMSException exception) {
+ gotException.countDown();
+ }});
+ conn.setClientID(getName());
+
+ // let it hang, simulate a server hang so inactivity timeout kicks in
+ proxy.pause();
+ //assertTrue("got an exception", gotException.await(5, TimeUnit.SECONDS));
+ TimeUnit.SECONDS.sleep(2);
+ conn.close();
+ }
+
@Override
protected void tearDown() throws Exception {
if (connection != null) {