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 2015/02/04 22:48:19 UTC
qpid-jms git commit: Session needs to wait until the dispatch to the
consumer is completely done before thinking the consumer is stopped otherwise
it might shutdown or null the executor while a dispatch is still in progress.
Repository: qpid-jms
Updated Branches:
refs/heads/master c28709728 -> 21c2a3574
Session needs to wait until the dispatch to the consumer is completely
done before thinking the consumer is stopped otherwise it might shutdown
or null the executor while a dispatch is still in progress.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/21c2a357
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/21c2a357
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/21c2a357
Branch: refs/heads/master
Commit: 21c2a3574987ffc98de4ebb5eba365e299509204
Parents: c287097
Author: Timothy Bish <ta...@gmail.com>
Authored: Wed Feb 4 16:01:26 2015 -0500
Committer: Timothy Bish <ta...@gmail.com>
Committed: Wed Feb 4 16:01:26 2015 -0500
----------------------------------------------------------------------
.../org/apache/qpid/jms/JmsMessageConsumer.java | 26 +++++++++++++-------
1 file changed, 17 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/21c2a357/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 0547440..8443caa 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
@@ -323,21 +323,29 @@ public class JmsMessageConsumer implements MessageConsumer, JmsMessageAvailableC
}
});
}
- if(envelope.isEnqueueFirst()) {
+
+ if (envelope.isEnqueueFirst()) {
this.messageQueue.enqueueFirst(envelope);
} else {
this.messageQueue.enqueue(envelope);
}
- } finally {
- lock.unlock();
- }
- if (this.messageListener != null && this.started) {
- session.getExecutor().execute(new MessageDeliverTask());
- } else {
- if (availableListener != null) {
- availableListener.onMessageAvailable(this);
+ if (this.messageListener != null && this.started) {
+ session.getExecutor().execute(new MessageDeliverTask());
+ } else {
+ if (availableListener != null) {
+ session.getExecutor().execute(new Runnable() {
+ @Override
+ public void run() {
+ if (session.isStarted()) {
+ availableListener.onMessageAvailable(JmsMessageConsumer.this);
+ }
+ }
+ });
+ }
}
+ } finally {
+ lock.unlock();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org