summaryrefslogtreecommitdiff
path: root/qpid/java
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
commit4a54b75b21fc7bff044b2c7730521bfec61c989b (patch)
treefb03154b35418c3baf4f92f643f6f65cecd46afd /qpid/java
parentd383fb9a4a8905676e62d97a467cc2ffe6b0ea09 (diff)
downloadqpid-python-4a54b75b21fc7bff044b2c7730521bfec61c989b.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@998544 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rwxr-xr-xqpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java15
1 files changed, 8 insertions, 7 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java
index 635155d1b0..96a9ac729e 100755
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java
+++ b/qpid/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)