You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2009/12/29 18:07:34 UTC

svn commit: r894445 - /qpid/branches/0.5.x-dev/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java

Author: robbie
Date: Tue Dec 29 17:07:34 2009
New Revision: 894445

URL: http://svn.apache.org/viewvc?rev=894445&view=rev
Log:
QPID-1802: if the queue was not in the store, check that there isnt already a queue in the virtualhost from earlier in the startup cycle before creating a new queue to deliver any recovered messages to, preventing creation and registration of a duplicate MBean

Modified:
    qpid/branches/0.5.x-dev/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java

Modified: qpid/branches/0.5.x-dev/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.5.x-dev/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java?rev=894445&r1=894444&r2=894445&view=diff
==============================================================================
--- qpid/branches/0.5.x-dev/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java (original)
+++ qpid/branches/0.5.x-dev/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java Tue Dec 29 17:07:34 2009
@@ -1419,6 +1419,19 @@
                 AMQShortString queueName = new AMQShortString(rs.getString(1));
 
                 AMQQueue queue = queues.get(queueName);
+
+                // If the matching queue was not already found in the store, check in case a queue
+                // with the same name exists in the virtualhost, otherwise we will create a duplicate
+                // queue and generate a JMX InstanceAlreadyExistsException, preventing startup.
+                if (queue == null)
+                {
+                    queue = _virtualHost.getQueueRegistry().getQueue(queueName);
+                    if (queue != null)
+                    {
+                        queues.put(queueName, queue);
+                    }
+                }
+                
                 if (queue == null)
                 {
                     queue = AMQQueueFactory.createAMQQueueImpl(queueName, false, null, false, _virtualHost, null);



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