From 7d49d33cdb51a98cd7621c3350f543ec3e10fc15 Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Fri, 6 Jul 2012 11:04:59 +0000 Subject: QPID-4112: Virtualhosts recover exchanges before queues Switch the recover order from queues,exchanges,... to exchanges,queues,.. so that when a queue with an alternate exchange is recovered, the exchange's uuid is already in the registry. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1358118 13f79535-47bb-0310-9956-ffa450edef68 --- .../server/store/berkeleydb/AbstractBDBMessageStore.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'qpid/java/bdbstore/src') diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java index 8e81e9a7b0..3eeac71ebf 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java @@ -60,6 +60,7 @@ import org.apache.qpid.server.message.EnqueableMessage; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.store.*; import org.apache.qpid.server.store.ConfigurationRecoveryHandler.BindingRecoveryHandler; +import org.apache.qpid.server.store.ConfigurationRecoveryHandler.BrokerLinkRecoveryHandler; import org.apache.qpid.server.store.ConfigurationRecoveryHandler.ExchangeRecoveryHandler; import org.apache.qpid.server.store.ConfigurationRecoveryHandler.QueueRecoveryHandler; import org.apache.qpid.server.store.MessageStoreRecoveryHandler.StoredMessageRecoveryHandler; @@ -413,16 +414,16 @@ public abstract class AbstractBDBMessageStore implements MessageStore try { List configuredObjects = loadConfiguredObjects(); - QueueRecoveryHandler qrh = recoveryHandler.begin(this); - _configuredObjectHelper.recoverQueues(qrh, configuredObjects); - - ExchangeRecoveryHandler erh = qrh.completeQueueRecovery(); + ExchangeRecoveryHandler erh = recoveryHandler.begin(this); _configuredObjectHelper.recoverExchanges(erh, configuredObjects); - BindingRecoveryHandler brh = erh.completeExchangeRecovery(); + QueueRecoveryHandler qrh = erh.completeExchangeRecovery(); + _configuredObjectHelper.recoverQueues(qrh, configuredObjects); + + BindingRecoveryHandler brh = qrh.completeQueueRecovery(); _configuredObjectHelper.recoverBindings(brh, configuredObjects); - ConfigurationRecoveryHandler.BrokerLinkRecoveryHandler lrh = brh.completeBindingRecovery(); + BrokerLinkRecoveryHandler lrh = brh.completeBindingRecovery(); recoverBrokerLinks(lrh); } catch (DatabaseException e) -- cgit v1.2.1