summaryrefslogtreecommitdiff
path: root/java/broker
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2010-09-18 21:17:55 +0000
committerRobert Gemmell <robbie@apache.org>2010-09-18 21:17:55 +0000
commit43352c738b13a0aae538e62e627f1461a80d0ec1 (patch)
tree89d46876d0d0f57cebf3c0cd469c8094b3b218d8 /java/broker
parentb2ddfb386b3cd8b4f595a0fe3f77da94807282b1 (diff)
downloadqpid-python-43352c738b13a0aae538e62e627f1461a80d0ec1.tar.gz
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
Diffstat (limited to 'java/broker')
-rwxr-xr-xjava/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java15
1 files changed, 8 insertions, 7 deletions
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<ProcessAction>();
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)