From a7fb61cad8733e14e0c9604d39f3b095d40bf561 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Thu, 3 Jan 2008 17:29:02 +0000 Subject: QPID-718 : NPE when binding queue with null routing key git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2.1@608570 13f79535-47bb-0310-9956-ffa450edef68 --- .../main/java/org/apache/qpid/server/exchange/DestNameExchange.java | 2 +- .../main/java/org/apache/qpid/server/exchange/DestWildExchange.java | 5 +++++ .../main/java/org/apache/qpid/server/handler/QueueBindHandler.java | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'java/broker/src') diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java index 5548659fae..b6b6ee39ce 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java @@ -190,7 +190,7 @@ public class DestNameExchange extends AbstractExchange public void route(AMQMessage payload) throws AMQException { final MessagePublishInfo info = payload.getMessagePublishInfo(); - final AMQShortString routingKey = info.getRoutingKey(); + final AMQShortString routingKey = info.getRoutingKey() == null ? AMQShortString.EMPTY_STRING : info.getRoutingKey(); final List queues = (routingKey == null) ? null : _index.get(routingKey); if (queues == null || queues.isEmpty()) { diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java index 4efe87d8d4..75be86a387 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java @@ -181,6 +181,11 @@ public class DestWildExchange extends AbstractExchange private AMQShortString normalize(AMQShortString routingKey) { + if(routingKey == null) + { + routingKey = AMQShortString.EMPTY_STRING; + } + StringTokenizer routingTokens = new StringTokenizer(routingKey.toString(), TOPIC_SEPARATOR); List _subscription = new ArrayList(); diff --git a/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java b/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java index 057586a143..a365cd864a 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java +++ b/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java @@ -90,7 +90,7 @@ public class QueueBindHandler implements StateAwareMethodListener else { queue = queueRegistry.getQueue(body.getQueue()); - routingKey = body.getRoutingKey() == null ? null : body.getRoutingKey().intern(); + routingKey = body.getRoutingKey() == null ? AMQShortString.EMPTY_STRING : body.getRoutingKey().intern(); } if (queue == null) -- cgit v1.2.1