You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2015/06/03 19:25:24 UTC
qpid-jms git commit: QPIDJMS-65: avoid race leading to sporadic test
failure
Repository: qpid-jms
Updated Branches:
refs/heads/master 2fde87949 -> ab970da6b
QPIDJMS-65: avoid race leading to sporadic test failure
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/ab970da6
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/ab970da6
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/ab970da6
Branch: refs/heads/master
Commit: ab970da6b810fccf0f93c4ac7e07aab58ea8ab54
Parents: 2fde879
Author: Robert Gemmell <ro...@apache.org>
Authored: Wed Jun 3 18:24:33 2015 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Wed Jun 3 18:24:33 2015 +0100
----------------------------------------------------------------------
.../integration/IdleTimeoutIntegrationTest.java | 2 +-
.../jms/integration/SaslIntegrationTest.java | 9 +++++++++
.../qpid/jms/test/testpeer/TestAmqpPeer.java | 21 ++++++++++++++------
3 files changed, 25 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ab970da6/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IdleTimeoutIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IdleTimeoutIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IdleTimeoutIntegrationTest.java
index 6e7db22..9fe598c 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IdleTimeoutIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IdleTimeoutIntegrationTest.java
@@ -179,7 +179,7 @@ public class IdleTimeoutIntegrationTest extends QpidJmsTestCase {
testPeer.waitForAllHandlersToComplete(1000);
// The peer is still connected, so it will get the close frame with error
- testPeer.expectClose(Matchers.notNullValue());
+ testPeer.expectClose(Matchers.notNullValue(), false);
assertNull(testPeer.getThrowable());
testPeer.setSuppressReadExceptionOnClose(true);
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ab970da6/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
index 19a6b85..d2222c9 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
@@ -37,6 +37,7 @@ import org.apache.qpid.jms.test.testpeer.TestAmqpPeer;
import org.apache.qpid.jms.transports.TransportSslOptions;
import org.apache.qpid.jms.transports.TransportSupport;
import org.apache.qpid.proton.amqp.Symbol;
+import org.hamcrest.Matchers;
import org.junit.Test;
public class SaslIntegrationTest extends QpidJmsTestCase {
@@ -153,6 +154,10 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
testPeer.expectFailingSaslConnect(serverMechs, clientSelectedMech);
+ // Work around race with test peer close
+ testPeer.expectHeaderAndOpen();
+ testPeer.expectClose(Matchers.nullValue(), false);
+
ConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:" + testPeer.getServerPort() + "?jms.clientID=myclientid");
try {
factory.createConnection(username, password);
@@ -200,6 +205,10 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
testPeer.expectFailingSaslConnect(serverMechs, clientSelectedMech);
+ // Work around race with test peer close
+ testPeer.expectHeaderAndOpen();
+ testPeer.expectClose(Matchers.nullValue(), false);
+
JmsConnectionFactory factory = new JmsConnectionFactory("amqps://localhost:" + testPeer.getServerPort() + connOptions);
try {
factory.createConnection();
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ab970da6/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
index d4adeb7..7822c80 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
@@ -600,16 +600,25 @@ public class TestAmqpPeer implements AutoCloseable
public void expectClose()
{
- expectClose(Matchers.nullValue());
+ expectClose(Matchers.nullValue(), true);
}
- public void expectClose(Matcher<?> errorMatcher)
+ public void expectClose(Matcher<?> errorMatcher, boolean sendReply)
{
- addHandler(new CloseMatcher()
- .withError(errorMatcher)
- .onSuccess(new FrameSender(this, FrameType.AMQP, 0,
+ CloseMatcher closeMatcher = new CloseMatcher().withError(errorMatcher);
+ if(sendReply) {
+ closeMatcher.onSuccess(new FrameSender(this, FrameType.AMQP, 0,
new CloseFrame(),
- null)));
+ null));
+ }
+
+ addHandler(closeMatcher);
+ }
+
+ public void expectHeaderAndOpen()
+ {
+ addHandler(new HeaderHandlerImpl(AmqpHeader.HEADER, AmqpHeader.HEADER));
+ addHandler(new OpenMatcher());
}
public void expectBegin(boolean expectSessionFlow)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org