diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2009-04-16 12:23:35 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2009-04-16 12:23:35 +0000 |
| commit | 978d7d947295561a53f89b19971fe3344552e01e (patch) | |
| tree | da670f15d72073d2a45bff088216d8c9f07893e4 /java | |
| parent | be2c19851068e7393cbc57400278dc3e3ec56f7b (diff) | |
| download | qpid-python-978d7d947295561a53f89b19971fe3344552e01e.tar.gz | |
QPID-1815 : Ensure Derby store looks up existing queues/exchanges in the virtualhost on recovery
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@765597 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java b/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java index 47d9311453..5c0672d783 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java +++ b/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java @@ -356,9 +356,16 @@ public class DerbyMessageStore implements MessageStore 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 @@ public class DerbyMessageStore implements MessageStore 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); } |
