Author: robbie
Date: Mon Aug 24 02:34:25 2009
New Revision: 807050

URL: http://svn.apache.org/viewvc?rev=807050&view=rev
Log:
QPID-2069: Allow empty values to be specified for keys when creating bindings 
in a Headers exchange via JMX, as the HeaderBindind supports this as specifying 
a match on key presence only

Modified:
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java?rev=807050&r1=807049&r2=807050&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
 Mon Aug 24 02:34:25 2009
@@ -204,11 +204,21 @@
             for (int i = 0; i < bindings.length; i++)
             {
                 String[] keyAndValue = bindings[i].split("=");
-                if (keyAndValue == null || keyAndValue.length < 2)
+                if (keyAndValue == null || keyAndValue.length == 0 || 
keyAndValue.length > 2)
                 {
                     throw new JMException("Format for headers binding should 
be \"<attribute1>=<value1>,<attribute2>=<value2>\" ");
                 }
-                bindingMap.setString(keyAndValue[0], keyAndValue[1]);
+                
+                if(keyAndValue.length ==1)
+                {
+                    //no value was given, only a key. Use an empty value
+                    //to signal match on key presence alone
+                    bindingMap.setString(keyAndValue[0], "");
+                }
+                else
+                {
+                    bindingMap.setString(keyAndValue[0], keyAndValue[1]);
+                }
             }
 
             _bindings.add(new Registration(new HeadersBinding(bindingMap), 
queue));



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to