From c36b056546610169ad9bee1d76e5182001a265ad Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Wed, 21 Nov 2012 20:44:12 +0000 Subject: QPID-4455 : [AMQP 1.0 JMS Client] Queue browsers were not returning jms messages. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1412280 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/amqp_1_0/jms/impl/QueueBrowserImpl.java | 28 +++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/QueueBrowserImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/QueueBrowserImpl.java index 914ec4bd0f..75003c0d77 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/QueueBrowserImpl.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/QueueBrowserImpl.java @@ -90,10 +90,10 @@ public class QueueBrowserImpl implements QueueBrowser } } - private final class MessageEnumeration implements Enumeration + private final class MessageEnumeration implements Enumeration { private Receiver _receiver; - private Message _nextElement; + private MessageImpl _nextElement; private boolean _needNext = true; MessageEnumeration() throws JMSException @@ -141,13 +141,13 @@ public class QueueBrowserImpl implements QueueBrowser if( _needNext ) { _needNext = false; - _nextElement = _receiver.receive(0L); + _nextElement = createJMSMessage(_receiver.receive(0L)); if( _nextElement == null ) { // Drain to verify there really are no more messages. _receiver.drain(); _receiver.drainWait(); - _nextElement = _receiver.receive(0L); + _nextElement = createJMSMessage(_receiver.receive(0L)); if( _nextElement == null ) { close(); @@ -163,11 +163,11 @@ public class QueueBrowserImpl implements QueueBrowser } @Override - public Message nextElement() + public MessageImpl nextElement() { if( hasMoreElements() ) { - Message message = _nextElement; + MessageImpl message = _nextElement; _nextElement = null; _needNext = true; return message; @@ -178,4 +178,20 @@ public class QueueBrowserImpl implements QueueBrowser } } } + + MessageImpl createJMSMessage(final Message msg) + { + if(msg != null) + { + final MessageImpl message = _session.getMessageFactory().createMessage(_queue, msg); + message.setFromQueue(true); + message.setFromTopic(false); + return message; + } + else + { + return null; + } + } + } -- cgit v1.2.1