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)
     {


Reply via email to