summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-10-10 11:43:50 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-10-10 11:43:50 +0000
commit918c0c3baf27bd8e4eaed49e3bf83b68ca3eac70 (patch)
treee2d842ab80da398f38e3be1a1c944459a38ac977 /qpid/java
parentcc2ba9f942385cd6a45b8c2796617fa2c3e1266c (diff)
downloadqpid-python-918c0c3baf27bd8e4eaed49e3bf83b68ca3eac70.tar.gz
QPID-6141 : Fix recover() for onMessage client-ack sessions
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1630766 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java6
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java10
2 files changed, 15 insertions, 1 deletions
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java
index 508aaf7518..b0b31d6e7b 100644
--- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java
+++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java
@@ -300,6 +300,12 @@ public class MessageConsumerImpl implements MessageConsumer, QueueReceiver, Topi
}
}
+ Message receiveRecoveredMessage()
+ {
+ return _replaymessages.isEmpty() ? null : _replaymessages.remove(0);
+
+ }
+
Message receive0(final long timeout)
{
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
index 0962e4aa37..945ae1c655 100644
--- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
+++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
@@ -922,7 +922,15 @@ public class SessionImpl implements Session, QueueSession, TopicSession
else
{
consumer = _messageConsumerList.remove(0);
- msg = consumer.receive0(0L);
+ msg = consumer.receiveRecoveredMessage();
+ if(msg == null)
+ {
+ msg = consumer.receive0(0L);
+ }
+ else
+ {
+ recoveredMessage = true;
+ }
}
MessageListener listener = consumer._messageListener;