diff options
author | Robert Gemmell <robbie@apache.org> | 2009-08-24 02:34:25 +0000 |
---|---|---|
committer | Robert Gemmell <robbie@apache.org> | 2009-08-24 02:34:25 +0000 |
commit | fe4ebd80a710770910c65778f5e531ebaccffde9 (patch) | |
tree | debde9b4347272d3abb1dbbc67cb771a83e790db /java | |
parent | 208230e695aaa3dd5691d2872835b87191569876 (diff) | |
download | qpid-python-fe4ebd80a710770910c65778f5e531ebaccffde9.tar.gz |
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
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@807050 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java index fc667db17b..c5f5cd05e1 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java @@ -204,11 +204,21 @@ public class HeadersExchange extends AbstractExchange 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)); |