From 43352c738b13a0aae538e62e627f1461a80d0ec1 Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Sat, 18 Sep 2010 21:17:55 +0000 Subject: QPID-2695: use exchangeName variable instead of exchange variable when logging during binding recovery to guard against NPEs, and check for exchange presence to prevent the BindingFactory incorrectly binding to the default exchange git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@998544 13f79535-47bb-0310-9956-ffa450edef68 --- .../virtualhost/VirtualHostConfigRecoveryHandler.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'java') diff --git a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java index 635155d1b0..96a9ac729e 100755 --- a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java +++ b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java @@ -219,18 +219,20 @@ public class VirtualHostConfigRecoveryHandler implements ConfigurationRecoveryHa _actions = new ArrayList(); try { - QueueRegistry queueRegistry = _virtualHost.getQueueRegistry(); Exchange exchange = _virtualHost.getExchangeRegistry().getExchange(exchangeName); - AMQQueue queue = queueRegistry.getQueue(new AMQShortString(queueName)); + if (exchange == null) + { + _logger.error("Unknown exchange: " + exchangeName + ", cannot bind queue : " + queueName); + return; + } + + AMQQueue queue = _virtualHost.getQueueRegistry().getQueue(new AMQShortString(queueName)); if (queue == null) { - _logger.error("Unknown queue: " + queueName + " cannot be bound to exchange: " - + exchange.getNameShortString()); + _logger.error("Unknown queue: " + queueName + ", cannot be bound to exchange: " + exchangeName); } else { - - FieldTable argumentsFT = null; if(buf != null) { @@ -249,7 +251,6 @@ public class VirtualHostConfigRecoveryHandler implements ConfigurationRecoveryHa bf.restoreBinding(bindingKey, queue, exchange, argumentMap); } - } } catch (AMQException e) -- cgit v1.2.1