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 2017/01/19 17:22:50 UTC

qpid-jms git commit: QPIDJMS-258 Don't create a new dispatch task for every message

Repository: qpid-jms
Updated Branches:
  refs/heads/master 01744bf8e -> 405341282


QPIDJMS-258 Don't create a new dispatch task for every message

The dispatch task is stateless and can be reused so we don't need to
create one every time.  

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

Branch: refs/heads/master
Commit: 40534128246bb3d9cf4690223cf12f27a609f628
Parents: 01744bf
Author: Timothy Bish <ta...@gmail.com>
Authored: Thu Jan 19 12:22:14 2017 -0500
Committer: Timothy Bish <ta...@gmail.com>
Committed: Thu Jan 19 12:22:14 2017 -0500

----------------------------------------------------------------------
 .../src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java  | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/40534128/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
index d782fab..b06270f 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
@@ -66,6 +66,7 @@ public class JmsMessageConsumer implements AutoCloseable, MessageConsumer, JmsMe
     protected final Lock lock = new ReentrantLock();
     protected final AtomicBoolean suspendedConnection = new AtomicBoolean();
     protected final AtomicReference<Throwable> failureCause = new AtomicReference<>();
+    protected final MessageDeliverTask deliveryTask = new MessageDeliverTask();
 
     protected JmsMessageConsumer(JmsConsumerId consumerId, JmsSession session, JmsDestination destination,
                                  String selector, boolean noLocal) throws JMSException {
@@ -497,7 +498,7 @@ public class JmsMessageConsumer implements AutoCloseable, MessageConsumer, JmsMe
 
             if (session.isStarted() && messageQueue.isRunning()) {
                 if (messageListener != null) {
-                    session.getDispatcherExecutor().execute(new MessageDeliverTask());
+                    session.getDispatcherExecutor().execute(deliveryTask);
                 } else if (availableListener != null) {
                     session.getDispatcherExecutor().execute(new Runnable() {
                         @Override
@@ -563,7 +564,7 @@ public class JmsMessageConsumer implements AutoCloseable, MessageConsumer, JmsMe
 
     void drainMessageQueueToListener() {
         if (messageListener != null && messageQueue.isRunning()) {
-            session.getDispatcherExecutor().execute(new MessageDeliverTask());
+            session.getDispatcherExecutor().execute(deliveryTask);
         }
     }
 
@@ -590,6 +591,7 @@ public class JmsMessageConsumer implements AutoCloseable, MessageConsumer, JmsMe
     @Override
     public void setMessageListener(MessageListener listener) throws JMSException {
         checkClosed();
+
         this.messageListener = listener;
         if (listener != null) {
             consumerInfo.setListener(true);


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