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]