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/04/16 14:23:35 UTC

svn commit: r765597 - /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java

Author: ritchiem
Date: Thu Apr 16 12:23:35 2009
New Revision: 765597

URL: http://svn.apache.org/viewvc?rev=765597&view=rev
Log:
QPID-1815 : Ensure Derby store looks up existing queues/exchanges in the virtualhost on recovery

Modified:
    qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java

Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java?rev=765597&r1=765596&r2=765597&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java Thu Apr 16 12:23:35 2009
@@ -356,9 +356,16 @@
             String queueName = rs.getString(1);
             String owner = rs.getString(2);
             AMQShortString queueNameShortString = new AMQShortString(queueName);
-            AMQQueue q =  AMQQueueFactory.createAMQQueueImpl(queueNameShortString, true, owner == null ? null : new AMQShortString(owner), false, _virtualHost,
-                                                             null);
-            _virtualHost.getQueueRegistry().registerQueue(q);
+
+            AMQQueue q = _virtualHost.getQueueRegistry().getQueue(queueNameShortString);
+
+            if (q == null)
+            {
+                q = AMQQueueFactory.createAMQQueueImpl(queueNameShortString, true, owner == null ? null : new AMQShortString(owner), false, _virtualHost,
+                                                       null);
+                _virtualHost.getQueueRegistry().registerQueue(q);
+            }
+            
             queueMap.put(queueNameShortString,q);
 
         }
@@ -394,8 +401,13 @@
                 String type = rs.getString(2);
                 boolean autoDelete = rs.getShort(3) != 0;
 
-                exchange = _virtualHost.getExchangeFactory().createExchange(new AMQShortString(exchangeName), new AMQShortString(type), true, autoDelete, 0);
-                _virtualHost.getExchangeRegistry().registerExchange(exchange);
+                AMQShortString exchangeNameSS = new AMQShortString(exchangeName);
+                exchange = _virtualHost.getExchangeRegistry().getExchange(exchangeNameSS);
+                if (exchange == null)
+                {
+                    exchange = _virtualHost.getExchangeFactory().createExchange(exchangeNameSS, new AMQShortString(type), true, autoDelete, 0);
+                    _virtualHost.getExchangeRegistry().registerExchange(exchange);
+                }
                 exchanges.add(exchange);
 
             }



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