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 2016/08/08 22:07:08 UTC
qpid-jms git commit: QPIDJMS-199 Allow for delayed send of remote
close of Connection
Repository: qpid-jms
Updated Branches:
refs/heads/master 36cd1d38a -> 0cf4c0fce
QPIDJMS-199 Allow for delayed send of remote close of Connection
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/0cf4c0fc
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/0cf4c0fc
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/0cf4c0fc
Branch: refs/heads/master
Commit: 0cf4c0fce5163fbd05eac96b216ed3e75c09d163
Parents: 36cd1d3
Author: Timothy Bish <ta...@gmail.com>
Authored: Mon Aug 8 18:05:43 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Mon Aug 8 18:05:43 2016 -0400
----------------------------------------------------------------------
.../integration/ConnectionIntegrationTest.java | 2 +-
.../qpid/jms/test/testpeer/TestAmqpPeer.java | 38 ++++++++++++++++----
2 files changed, 32 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/0cf4c0fc/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConnectionIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConnectionIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConnectionIntegrationTest.java
index cd43444..a3a6ce2 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConnectionIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConnectionIntegrationTest.java
@@ -463,7 +463,7 @@ public class ConnectionIntegrationTest extends QpidJmsTestCase {
testPeer.expectSenderAttachWithoutGrantingCredit();
// Producer has no credit so the send should block waiting for it.
- testPeer.remotelyCloseConnection(true, AmqpError.RESOURCE_LIMIT_EXCEEDED, BREAD_CRUMB);
+ testPeer.remotelyCloseConnection(true, AmqpError.RESOURCE_LIMIT_EXCEEDED, BREAD_CRUMB, 50);
Queue queue = session.createQueue("myQueue");
final MessageProducer producer = session.createProducer(queue);
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/0cf4c0fc/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 deac1fd..64f7023 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
@@ -610,7 +610,7 @@ public class TestAmqpPeer implements AutoCloseable
expectSaslAnonymousConnect(null, null, null, serverProperties);
// Now generate the Close frame with the supplied error
- final FrameSender closeSender = createCloseFrameSender(errorType, errorMessage, errorInfo);
+ final FrameSender closeSender = createCloseFrameSender(errorType, errorMessage, errorInfo, 0);
// Update the handler to send the Close frame after the Open frame.
CompositeAmqpPeerRunnable comp = insertCompsiteActionForLastHandler();
@@ -1896,20 +1896,28 @@ public class TestAmqpPeer implements AutoCloseable
}
public void remotelyCloseConnection(boolean expectCloseResponse) {
- remotelyCloseConnection(expectCloseResponse, null, null, null);
+ remotelyCloseConnection(expectCloseResponse, null, null, null, 0);
}
public void remotelyCloseConnection(boolean expectCloseResponse, Symbol errorType, String errorMessage) {
- remotelyCloseConnection(expectCloseResponse, errorType, errorMessage, null);
+ remotelyCloseConnection(expectCloseResponse, errorType, errorMessage, null, 0);
+ }
+
+ public void remotelyCloseConnection(boolean expectCloseResponse, Symbol errorType, String errorMessage, long delayBeforeSend) {
+ remotelyCloseConnection(expectCloseResponse, errorType, errorMessage, null, delayBeforeSend);
}
public void remotelyCloseConnection(boolean expectCloseResponse, Symbol errorType, String errorMessage, Map<Symbol, Object> info) {
+ remotelyCloseConnection(expectCloseResponse, errorType, errorMessage, info, 0);
+ }
+
+ public void remotelyCloseConnection(boolean expectCloseResponse, Symbol errorType, String errorMessage, Map<Symbol, Object> info, long delayBeforeSend) {
synchronized (_handlersLock) {
// Prepare a composite to insert this action at the end of the handler sequence
CompositeAmqpPeerRunnable comp = insertCompsiteActionForLastHandler();
// Now generate the Close
- final FrameSender closeSender = createCloseFrameSender(errorType, errorMessage, info);
+ final FrameSender closeSender = createCloseFrameSender(errorType, errorMessage, info, delayBeforeSend);
comp.add(closeSender);
@@ -1921,7 +1929,7 @@ public class TestAmqpPeer implements AutoCloseable
}
}
- private FrameSender createCloseFrameSender(Symbol errorType, String errorMessage, Map<Symbol, Object> info) {
+ private FrameSender createCloseFrameSender(Symbol errorType, String errorMessage, Map<Symbol, Object> info, final long delayBeforeSend) {
final CloseFrame closeFrame = new CloseFrame();
if (errorType != null) {
org.apache.qpid.jms.test.testpeer.describedtypes.Error closeError = new org.apache.qpid.jms.test.testpeer.describedtypes.Error();
@@ -1932,11 +1940,27 @@ public class TestAmqpPeer implements AutoCloseable
closeFrame.setError(closeError);
}
- return new FrameSender(this, FrameType.AMQP, CONNECTION_CHANNEL, closeFrame, null);
+ final FrameSender closeSender = new FrameSender(this, FrameType.AMQP, CONNECTION_CHANNEL, closeFrame, null);
+ closeSender.setValueProvider(new ValueProvider() {
+
+ @Override
+ public void setValues() {
+ //Insert a delay if requested
+ if (delayBeforeSend > 0) {
+ try {
+ Thread.sleep(delayBeforeSend);
+ } catch (InterruptedException e) {
+ // Ignore
+ }
+ }
+ }
+ });
+
+ return closeSender;
}
void sendConnectionCloseImmediately(Symbol errorType, String errorMessage) {
- FrameSender closeSender = createCloseFrameSender(errorType, errorMessage, null);
+ FrameSender closeSender = createCloseFrameSender(errorType, errorMessage, null, 0);
closeSender.run();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org