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 <[email protected]> Authored: Thu Jan 19 12:22:14 2017 -0500 Committer: Timothy Bish <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
