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 | d5f67b8aa920a0bed8fc80464a6308a81b22362c (patch) | |
| tree | e29f08bb44ecddde3d6ce27c2a2c3cbda5a29a49 /qpid/java | |
| parent | 6bea33d1134b8ff2c1b99c3f227f1337b7ca841c (diff) | |
| download | qpid-python-d5f67b8aa920a0bed8fc80464a6308a81b22362c.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@807050 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java index fc667db17b..c5f5cd05e1 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java +++ b/qpid/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)); |
