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 2007/04/10 10:00:43 UTC

svn commit: r527050 - /incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java

Author: ritchiem
Date: Tue Apr 10 01:00:42 2007
New Revision: 527050

URL: http://svn.apache.org/viewvc?view=rev&rev=527050
Log:
QueueDeclareHandler.java - Added more detail to error messages. Such as returning the queue name that was attempted to be declared but failed.

Modified:
    incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java

Modified: incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java?view=diff&rev=527050&r1=527049&r2=527050
==============================================================================
--- incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java (original)
+++ incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java Tue Apr 10 01:00:42 2007
@@ -64,7 +64,6 @@
     private final AtomicInteger _counter = new AtomicInteger();
 
 
-
     protected QueueDeclareHandler()
     {
         Configurator.configure(this);
@@ -92,12 +91,12 @@
         synchronized (queueRegistry)
         {
 
-            if (((queue = queueRegistry.getQueue(body.queue)) == null) )
+            if (((queue = queueRegistry.getQueue(body.queue)) == null))
             {
-                if(body.passive)
+                if (body.passive)
                 {
-                    String msg = "Queue: " + body.queue + " not found.";
-                    throw body.getChannelException(AMQConstant.NOT_FOUND,msg );
+                    String msg = "Queue: " + body.queue + " not found on VirtualHost(" + virtualHost + ").";
+                    throw body.getChannelException(AMQConstant.NOT_FOUND, msg);
                 }
                 else
                 {
@@ -112,13 +111,16 @@
                         Exchange defaultExchange = exchangeRegistry.getDefaultExchange();
 
                         queue.bind(body.queue, null, defaultExchange);
-                        _log.info("Queue " + body.queue + " bound to default exchange");
+                        _log.info("Queue " + body.queue + " bound to default exchange(" + defaultExchange.getName() + ")");
                     }
                 }
             }
-            else if(queue.getOwner() != null && !session.getContextKey().equals(queue.getOwner()))
+            else if (queue.getOwner() != null && !session.getContextKey().equals(queue.getOwner()))
             {
-                throw body.getChannelException(AMQConstant.ALREADY_EXISTS, "Cannot declare queue, as exclusive queue with same name declared on another connection");        
+                throw body.getChannelException(AMQConstant.ALREADY_EXISTS, "Cannot declare queue('" + body.queue + "'),"
+                                                                           + " as exclusive queue with same name "
+                                                                           + "declared on another client ID('"
+                                                                           + queue.getOwner() + "')");
             }
 
             AMQChannel channel = session.getChannel(evt.getChannelId());
@@ -138,10 +140,10 @@
             // TODO: Connect this to the session version obtained from ProtocolInitiation for this session.
             // Be aware of possible changes to parameter order as versions change.
             AMQFrame response = QueueDeclareOkBody.createAMQFrame(evt.getChannelId(),
-                (byte)8, (byte)0,	// AMQP version (major, minor)
-                queue.getConsumerCount(), // consumerCount
-                queue.getMessageCount(), // messageCount
-                body.queue); // queue
+                                                                  (byte) 8, (byte) 0,    // AMQP version (major, minor)
+                                                                  queue.getConsumerCount(), // consumerCount
+                                                                  queue.getMessageCount(), // messageCount
+                                                                  body.queue); // queue
             _log.info("Queue " + body.queue + " declared successfully");
             session.writeFrame(response);
         }
@@ -162,24 +164,22 @@
     {
         final QueueRegistry registry = virtualHost.getQueueRegistry();
         AMQShortString owner = body.exclusive ? session.getContextKey() : null;
-        final AMQQueue queue =  new AMQQueue(body.queue, body.durable, owner, body.autoDelete, virtualHost);
+        final AMQQueue queue = new AMQQueue(body.queue, body.durable, owner, body.autoDelete, virtualHost);
         final AMQShortString queueName = queue.getName();
 
-        if(body.exclusive && !body.durable)
+        if (body.exclusive && !body.durable)
         {
             final AMQProtocolSession.Task deleteQueueTask =
-                new AMQProtocolSession.Task()
-                {
-
-                    public void doTask(AMQProtocolSession session) throws AMQException
+                    new AMQProtocolSession.Task()
                     {
-                        if(registry.getQueue(queueName) == queue)
+                        public void doTask(AMQProtocolSession session) throws AMQException
                         {
-                            queue.delete();
+                            if (registry.getQueue(queueName) == queue)
+                            {
+                                queue.delete();
+                            }
                         }
-
-                    }
-                };
+                    };
 
             session.addSessionCloseTask(deleteQueueTask);
 
@@ -190,16 +190,14 @@
                     session.removeSessionCloseTask(deleteQueueTask);
                 }
             });
-
-
-        }
+        }// if exclusive and not durable
 
         Configuration virtualHostDefaultQueueConfiguration = VirtualHostConfiguration.getDefaultQueueConfiguration(queue);
         if (virtualHostDefaultQueueConfiguration != null)
         {
             Configurator.configure(queue, virtualHostDefaultQueueConfiguration);
         }
-        
+
         return queue;
     }
 }