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 2016/10/20 21:50:32 UTC
activemq git commit: NO-JIRA Add a close method to the session
(cherry picked from commit 4c838c5fa3c83782b1bfaa069f2beb7a87a7beaa)
Repository: activemq
Updated Branches:
refs/heads/activemq-5.14.x 9b6b31ca2 -> 9363af6f3
NO-JIRA Add a close method to the session
(cherry picked from commit 4c838c5fa3c83782b1bfaa069f2beb7a87a7beaa)
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/9363af6f
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/9363af6f
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/9363af6f
Branch: refs/heads/activemq-5.14.x
Commit: 9363af6f37c9552bc2af71ba8782af00fce360cb
Parents: 9b6b31c
Author: Timothy Bish <ta...@gmail.com>
Authored: Thu Oct 20 17:49:26 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Thu Oct 20 17:50:25 2016 -0400
----------------------------------------------------------------------
.../transport/amqp/client/AmqpSession.java | 26 ++++++++++++++++++++
1 file changed, 26 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/9363af6f/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java
----------------------------------------------------------------------
diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java
index 3804603..7cb745c 100644
--- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java
+++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/client/AmqpSession.java
@@ -16,7 +16,9 @@
*/
package org.apache.activemq.transport.amqp.client;
+import java.io.IOException;
import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.activemq.transport.amqp.client.util.AsyncResult;
@@ -38,6 +40,7 @@ public class AmqpSession extends AmqpAbstractResource<Session> {
private final AmqpConnection connection;
private final String sessionId;
private final AmqpTransactionContext txContext;
+ private final AtomicBoolean closed = new AtomicBoolean();
/**
* Create a new session instance.
@@ -54,6 +57,29 @@ public class AmqpSession extends AmqpAbstractResource<Session> {
}
/**
+ * Close the receiver, a closed receiver will throw exceptions if any further send
+ * calls are made.
+ *
+ * @throws IOException if an error occurs while closing the receiver.
+ */
+ public void close() throws IOException {
+ if (closed.compareAndSet(false, true)) {
+ final ClientFuture request = new ClientFuture();
+ getScheduler().execute(new Runnable() {
+
+ @Override
+ public void run() {
+ checkClosed();
+ close(request);
+ pumpToProtonTransport(request);
+ }
+ });
+
+ request.sync();
+ }
+ }
+
+ /**
* Create an anonymous sender.
*
* @return a newly created sender that is ready for use.