Author: gsim
Date: Wed May 28 06:56:59 2008
New Revision: 660953

URL: http://svn.apache.org/viewvc?rev=660953&view=rev
Log:
QPID-1098: correction to queue query when queue is not known


Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp
    incubator/qpid/trunk/qpid/python/tests_0-10/query.py

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp?rev=660953&r1=660952&r2=660953&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp Wed May 28 
06:56:59 2008
@@ -220,17 +220,22 @@
 
 QueueQueryResult SessionAdapter::QueueHandlerImpl::query(const string& name)
 {
-    Queue::shared_ptr queue = getQueue(name);
-    Exchange::shared_ptr alternateExchange = queue->getAlternateExchange();
+    Queue::shared_ptr queue = session.getBroker().getQueues().find(name);
+    if (queue) {
 
-    return QueueQueryResult(queue->getName(), 
-                            alternateExchange ? alternateExchange->getName() : 
"", 
-                            queue->isDurable(), 
-                            queue->hasExclusiveOwner(),
-                            queue->isAutoDelete(),
-                            queue->getSettings(),
-                            queue->getMessageCount(),
-                            queue->getConsumerCount());
+        Exchange::shared_ptr alternateExchange = queue->getAlternateExchange();
+        
+        return QueueQueryResult(queue->getName(), 
+                                alternateExchange ? 
alternateExchange->getName() : "", 
+                                queue->isDurable(), 
+                                queue->hasExclusiveOwner(),
+                                queue->isAutoDelete(),
+                                queue->getSettings(),
+                                queue->getMessageCount(),
+                                queue->getConsumerCount());
+    } else {
+        return QueueQueryResult();
+    }
 }
 
 void SessionAdapter::QueueHandlerImpl::declare(const string& name, const 
string& alternateExchange,

Modified: incubator/qpid/trunk/qpid/python/tests_0-10/query.py
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/tests_0-10/query.py?rev=660953&r1=660952&r2=660953&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/tests_0-10/query.py (original)
+++ incubator/qpid/trunk/qpid/python/tests_0-10/query.py Wed May 28 06:56:59 
2008
@@ -30,6 +30,11 @@
         result = session.queue_query(queue="my-queue")
         self.assertEqual("my-queue", result.queue)
 
+    def test_queue_query_unknown(self):
+        session = self.session
+        result = session.queue_query(queue="I don't exist")
+        self.assert_(not result.queue)
+
     def test_exchange_query(self):
         """
         Test that the exchange_query method works as expected


Reply via email to