You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2009/03/06 13:25:50 UTC

svn commit: r750868 - in /qpid/trunk/qpid/java: ExcludeList client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java

Author: ritchiem
Date: Fri Mar  6 12:25:50 2009
New Revision: 750868

URL: http://svn.apache.org/viewvc?rev=750868&view=rev
Log:
QPID-1451 : Added the ability to log first message recevied in Queue Browser.

Modified:
    qpid/trunk/qpid/java/ExcludeList
    qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java

Modified: qpid/trunk/qpid/java/ExcludeList
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/ExcludeList?rev=750868&r1=750867&r2=750868&view=diff
==============================================================================
--- qpid/trunk/qpid/java/ExcludeList (original)
+++ qpid/trunk/qpid/java/ExcludeList Fri Mar  6 12:25:50 2009
@@ -1,11 +1,4 @@
 org.apache.qpid.client.MultipleJCAProviderRegistrationTest#test
-// QPID-1451 : testBrowsingWithSelector test is not correct.
-org.apache.qpid.test.client.QueueBrowserAutoAckTest#testBrowsingWithSelector
-org.apache.qpid.test.client.QueueBrowserClientAckTest#testBrowsingWithSelector
-org.apache.qpid.test.client.QueueBrowserDupsOkTest#testBrowsingWithSelector
-org.apache.qpid.test.client.QueueBrowserNoAckTest#testBrowsingWithSelector
-org.apache.qpid.test.client.QueueBrowserPreAckTest#testBrowsingWithSelector
-org.apache.qpid.test.client.QueueBrowserTransactedTest#testBrowsingWithSelector
 // QPID-1715, QPID-1715 : Client Error Handling on close is still broken
 org.apache.qpid.server.queue.QueueCreateTest#testCreatePriorityString
 org.apache.qpid.server.queue.QueueCreateTest#testCreateFlowToDiskValidNoSize

Modified: qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java?rev=750868&r1=750867&r2=750868&view=diff
==============================================================================
--- qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java (original)
+++ qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java Fri Mar  6 12:25:50 2009
@@ -22,14 +22,12 @@
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.qpid.AMQException;
 
 import javax.jms.IllegalStateException;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.Queue;
 import javax.jms.QueueBrowser;
-
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -90,38 +88,11 @@
     {
         checkState();
         final BasicMessageConsumer consumer =
-            (BasicMessageConsumer) _session.createBrowserConsumer(_queue, _messageSelector, false);
+                (BasicMessageConsumer) _session.createBrowserConsumer(_queue, _messageSelector, false);
 
         _consumers.add(consumer);
 
-        return new Enumeration()
-        {
-
-            Message _nextMessage = consumer == null ? null : consumer.receiveBrowse();
-
-            public boolean hasMoreElements()
-            {
-                _logger.info("QB:hasMoreElements:" + (_nextMessage != null));
-                return (_nextMessage != null);
-            }
-
-            public Object nextElement()
-            {
-                Message msg = _nextMessage;
-                try
-                {
-                    _logger.info("QB:nextElement about to receive");
-                    _nextMessage = consumer.receiveBrowse();
-                    _logger.info("QB:nextElement received:" + _nextMessage);
-                }
-                catch (JMSException e)
-                {
-                    _logger.warn("Exception caught while queue browsing", e);
-                    _nextMessage = null;
-                }
-                return msg;
-            }
-        };
+        return new QueueBrowserEnumeration(consumer);
     }
 
     public void close() throws JMSException
@@ -134,4 +105,39 @@
         _consumers.clear();
     }
 
+    private class QueueBrowserEnumeration implements Enumeration
+    {
+        Message _nextMessage;
+        private BasicMessageConsumer _consumer;
+
+        public QueueBrowserEnumeration(BasicMessageConsumer consumer) throws JMSException
+        {
+            _nextMessage = consumer == null ? null : consumer.receiveBrowse();
+            _logger.info("QB:created with first element:" + _nextMessage);
+            _consumer = consumer;
+        }
+
+        public boolean hasMoreElements()
+        {
+            _logger.info("QB:hasMoreElements:" + (_nextMessage != null));
+            return (_nextMessage != null);
+        }
+
+        public Object nextElement()
+        {
+            Message msg = _nextMessage;
+            try
+            {
+                _logger.info("QB:nextElement about to receive");
+                _nextMessage = _consumer.receiveBrowse();
+                _logger.info("QB:nextElement received:" + _nextMessage);
+            }
+            catch (JMSException e)
+            {
+                _logger.warn("Exception caught while queue browsing", e);
+                _nextMessage = null;
+            }
+            return msg;
+        }
+    }    
 }



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org