Author: rgodfrey
Date: Thu Jan 3 09:29:02 2008
New Revision: 608570
URL: http://svn.apache.org/viewvc?rev=608570&view=rev
Log:
QPID-718 : NPE when binding queue with null routing key
Modified:
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java
incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
Modified:
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java?rev=608570&r1=608569&r2=608570&view=diff
==============================================================================
---
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java
(original)
+++
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java
Thu Jan 3 09:29:02 2008
@@ -190,7 +190,7 @@
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<AMQQueue> queues = (routingKey == null) ? null :
_index.get(routingKey);
if (queues == null || queues.isEmpty())
{
Modified:
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java?rev=608570&r1=608569&r2=608570&view=diff
==============================================================================
---
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java
(original)
+++
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java
Thu Jan 3 09:29:02 2008
@@ -181,6 +181,11 @@
private AMQShortString normalize(AMQShortString routingKey)
{
+ if(routingKey == null)
+ {
+ routingKey = AMQShortString.EMPTY_STRING;
+ }
+
StringTokenizer routingTokens = new
StringTokenizer(routingKey.toString(), TOPIC_SEPARATOR);
List<String> _subscription = new ArrayList<String>();
Modified:
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java?rev=608570&r1=608569&r2=608570&view=diff
==============================================================================
---
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java
(original)
+++
incubator/qpid/branches/M2.1/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java
Thu Jan 3 09:29:02 2008
@@ -90,7 +90,7 @@
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)
Modified:
incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java?rev=608570&r1=608569&r2=608570&view=diff
==============================================================================
---
incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
(original)
+++
incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
Thu Jan 3 09:29:02 2008
@@ -57,6 +57,8 @@
private int _hashCode;
private final int _length;
private static final char[] EMPTY_CHAR_ARRAY = new char[0];
+
+ public static final AMQShortString EMPTY_STRING = new
AMQShortString((String)null);
public AMQShortString(byte[] data)
{