You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2015/02/17 00:27:04 UTC

[1/3] qpid-jms git commit: Test some TX offline behavior

Repository: qpid-jms
Updated Branches:
  refs/heads/master 1ba99d539 -> 289c9ab3d


Test some TX offline behavior 

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/fa99c6f8
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/fa99c6f8
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/fa99c6f8

Branch: refs/heads/master
Commit: fa99c6f80e36cea98d2e02b752640850cd953e08
Parents: 1ba99d5
Author: Timothy Bish <ta...@gmail.com>
Authored: Mon Feb 16 15:50:04 2015 -0500
Committer: Timothy Bish <ta...@gmail.com>
Committed: Mon Feb 16 15:50:04 2015 -0500

----------------------------------------------------------------------
 .../FailoverProviderOfflineBehaviorTest.java    | 48 ++++++++++++++++++++
 1 file changed, 48 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fa99c6f8/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderOfflineBehaviorTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderOfflineBehaviorTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderOfflineBehaviorTest.java
index f60a9ba..1124014 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderOfflineBehaviorTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderOfflineBehaviorTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.qpid.jms.provider.failover;
 
+import static org.junit.Assert.fail;
+
 import java.io.IOException;
 import java.net.URI;
 import java.util.concurrent.CountDownLatch;
@@ -25,6 +27,7 @@ import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
 import javax.jms.Queue;
 import javax.jms.Session;
+import javax.jms.TransactionRolledBackException;
 
 import org.apache.qpid.jms.JmsConnection;
 import org.apache.qpid.jms.JmsConnectionFactory;
@@ -186,6 +189,51 @@ public class FailoverProviderOfflineBehaviorTest extends FailoverProviderTestSup
         connection.close();
     }
 
+    @Test(timeout=10000)
+    public void testTransactionCommitFails() throws Exception {
+        connection = (JmsConnection) factory.createConnection();
+        connection.addConnectionListener(new ConnectionInterruptionListener());
+        connection.start();
+
+        Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
+        Queue queue = session.createQueue(_testName.getMethodName());
+        MessageProducer producer = session.createProducer(queue);
+        producer.send(session.createMessage());
+
+        mockPeer.shutdown();
+        connectionInterrupted.await(9, TimeUnit.SECONDS);
+
+        try {
+            session.commit();
+            fail("Should not allow a commit while offline.");
+        } catch (TransactionRolledBackException ex) {}
+
+        connection.close();
+    }
+
+    @Test(timeout=10000)
+    public void testTransactionRollbackSucceeds() throws Exception {
+        connection = (JmsConnection) factory.createConnection();
+        connection.addConnectionListener(new ConnectionInterruptionListener());
+        connection.start();
+
+        Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
+        Queue queue = session.createQueue(_testName.getMethodName());
+        MessageProducer producer = session.createProducer(queue);
+        producer.send(session.createMessage());
+
+        mockPeer.shutdown();
+        connectionInterrupted.await(9, TimeUnit.SECONDS);
+
+        try {
+            session.rollback();
+        } catch (TransactionRolledBackException ex) {
+            fail("Should allow a rollback while offline.");
+        }
+
+        connection.close();
+    }
+
     private class ConnectionInterruptionListener implements JmsConnectionListener {
         @Override
         public void onConnectionInterrupted(URI remoteURI) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[2/3] qpid-jms git commit: Remove setters for values set via JmsConnectionInfo

Posted by ta...@apache.org.
Remove setters for values set via JmsConnectionInfo

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/ff60cfb9
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/ff60cfb9
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/ff60cfb9

Branch: refs/heads/master
Commit: ff60cfb94a5688ca0b815a2f2ed67c45de288afa
Parents: fa99c6f
Author: Timothy Bish <ta...@gmail.com>
Authored: Mon Feb 16 16:02:05 2015 -0500
Committer: Timothy Bish <ta...@gmail.com>
Committed: Mon Feb 16 16:02:05 2015 -0500

----------------------------------------------------------------------
 .../qpid/jms/provider/amqp/AmqpProvider.java    | 16 ---------
 .../jms/provider/amqp/AmqpProviderTest.java     |  5 ---
 .../provider/failover/FailoverProviderTest.java | 37 ++++++++++++++++++++
 3 files changed, 37 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ff60cfb9/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
index 610682a..d826a4e 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
@@ -839,34 +839,18 @@ public class AmqpProvider implements Provider, TransportListener {
         return this.closeTimeout;
     }
 
-    public void setCloseTimeout(long closeTimeout) {
-        this.closeTimeout = closeTimeout;
-    }
-
     public long getConnectTimeout() {
         return connectTimeout;
     }
 
-    public void setConnectTimeout(long connectTimeout) {
-        this.connectTimeout = connectTimeout;
-    }
-
     public long getRequestTimeout() {
         return requestTimeout;
     }
 
-    public void setRequestTimeout(long requestTimeout) {
-        this.requestTimeout = requestTimeout;
-    }
-
     public long getSendTimeout() {
         return sendTimeout;
     }
 
-    public void setSendTimeout(long sendTimeout) {
-        this.sendTimeout = sendTimeout;
-    }
-
     public void setPresettle(boolean presettle) {
         setPresettleConsumers(presettle);
         setPresettleProducers(presettle);

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ff60cfb9/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java
index df1ced8..0105948 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java
@@ -161,11 +161,6 @@ public class AmqpProviderTest extends QpidJmsTestCase {
         provider.connect();
         testPeer.expectClose();
 
-        provider.setConnectTimeout(CONNECT_TIMEOUT + 100);
-        provider.setCloseTimeout(CLOSE_TIMEOUT + 100);
-        provider.setSendTimeout(SEND_TIMEOUT + 100);
-        provider.setRequestTimeout(REQUEST_TIMEOUT + 100);
-
         JmsConnectionInfo connectionInfo = createConnectionInfo();
 
         connectionInfo.setConnectTimeout(CONNECT_TIMEOUT);

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ff60cfb9/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java
index 8999930..da9a9c1 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.io.IOException;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -38,6 +39,7 @@ import javax.jms.JMSException;
 import javax.jms.Session;
 
 import org.apache.qpid.jms.JmsConnectionFactory;
+import org.apache.qpid.jms.meta.JmsConnectionInfo;
 import org.apache.qpid.jms.meta.JmsConsumerInfo;
 import org.apache.qpid.jms.meta.JmsProducerInfo;
 import org.apache.qpid.jms.meta.JmsSessionInfo;
@@ -331,4 +333,39 @@ public class FailoverProviderTest extends FailoverProviderTestSupport {
 
         assertEquals(1, mockPeer.getContextStats().getUnsubscribeCalls());
     }
+
+    @Test(timeout=10000)
+    public void testTimeoutsSetFromConnectionInfo() throws IOException, JMSException {
+        final long CONNECT_TIMEOUT = TimeUnit.SECONDS.toMillis(4);
+        final long CLOSE_TIMEOUT = TimeUnit.SECONDS.toMillis(5);
+        final long SEND_TIMEOUT = TimeUnit.SECONDS.toMillis(6);
+        final long REQUEST_TIMEOUT = TimeUnit.SECONDS.toMillis(7);
+
+        provider = new FailoverProvider(uris, Collections.<String, String>emptyMap());
+        provider.setProviderListener(new DefaultProviderListener() {
+
+            @Override
+            public void onConnectionEstablished(URI remoteURI) {
+            }
+        });
+
+        provider.connect();
+        provider.start();
+
+        JmsConnectionInfo connectionInfo = createConnectionInfo();
+
+        connectionInfo.setConnectTimeout(CONNECT_TIMEOUT);
+        connectionInfo.setCloseTimeout(CLOSE_TIMEOUT);
+        connectionInfo.setSendTimeout(SEND_TIMEOUT);
+        connectionInfo.setRequestTimeout(REQUEST_TIMEOUT);
+
+        ProviderFuture request = new ProviderFuture();
+        provider.create(connectionInfo, request);
+        request.sync();
+
+        assertEquals(CONNECT_TIMEOUT, provider.getConnectTimeout());
+        assertEquals(CLOSE_TIMEOUT, provider.getCloseTimeout());
+        assertEquals(SEND_TIMEOUT, provider.getSendTimeout());
+        assertEquals(REQUEST_TIMEOUT, provider.getRequestTimeout());
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[3/3] qpid-jms git commit: Cover reconnect with back off enabled and a max delay value set.

Posted by ta...@apache.org.
Cover reconnect with back off enabled and a max delay value set.

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/289c9ab3
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/289c9ab3
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/289c9ab3

Branch: refs/heads/master
Commit: 289c9ab3d8ea29b55efd637f250edded137763a3
Parents: ff60cfb
Author: Timothy Bish <ta...@gmail.com>
Authored: Mon Feb 16 16:16:36 2015 -0500
Committer: Timothy Bish <ta...@gmail.com>
Committed: Mon Feb 16 16:16:36 2015 -0500

----------------------------------------------------------------------
 .../provider/failover/FailoverProviderTest.java | 24 ++++++++++++++++++++
 1 file changed, 24 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/289c9ab3/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java
index da9a9c1..1a04b32 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTest.java
@@ -246,6 +246,30 @@ public class FailoverProviderTest extends FailoverProviderTestSupport {
     }
 
     @Test(timeout = 30000)
+    public void testMaxReconnectAttemptsWithBackOff() throws Exception {
+        JmsConnectionFactory factory = new JmsConnectionFactory(
+            "failover:(mock://localhost?mock.failOnConnect=true)" +
+            "?failover.maxReconnectAttempts=5" +
+            "&failover.maxReconnectDelay=60" +
+            "&failover.reconnectDelay=10" +
+            "&failover.useReconnectBackOff=true");
+
+        Connection connection = factory.createConnection();
+
+        try {
+            connection.start();
+            fail("Should have stopped after five retries.");
+        } catch (JMSException ex) {
+        } finally {
+            connection.close();
+        }
+
+        assertEquals(5, mockPeer.getContextStats().getProvidersCreated());
+        assertEquals(5, mockPeer.getContextStats().getConnectionAttempts());
+        assertEquals(5, mockPeer.getContextStats().getCloseAttempts());
+    }
+
+    @Test(timeout = 30000)
     public void testFailureOnCloseIsSwallowed() throws Exception {
         JmsConnectionFactory factory = new JmsConnectionFactory(
             "failover:(mock://localhost?mock.failOnClose=true)");


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org