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:[email protected]

Reply via email to