diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2013-06-02 14:58:05 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2013-06-02 14:58:05 +0000 |
commit | de256c3031504b710d6676495e06f896972c2395 (patch) | |
tree | 2d1851ccdb024ebc8ed44e8c7c0b0d25b5c3509e | |
parent | 8aa8567bcb8102961ad08fe0c4032523efce1ad4 (diff) | |
download | qpid-python-de256c3031504b710d6676495e06f896972c2395.tar.gz |
QPID-4897 : [Java Broker] changes to how exchangeBound result is calculated
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1488726 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java | 59 |
1 files changed, 51 insertions, 8 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java index 74a90374cb..548b75f949 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java +++ b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java @@ -1132,30 +1132,64 @@ public class ServerSessionDelegate extends SessionDelegate { final boolean keyMatched = exchange.isBound(method.getBindingKey(), queue); result.setKeyNotMatched(!keyMatched); - if(method.hasArguments() && keyMatched) + if(method.hasArguments()) { - result.setArgsNotMatched(!exchange.isBound(method.getBindingKey(), method.getArguments(), queue)); + if(keyMatched) + { + result.setArgsNotMatched(!exchange.isBound(method.getBindingKey(), method.getArguments(), queue)); + } + else + { + result.setArgsNotMatched(!exchange.isBound(method.getArguments(), queue)); + } } } else { - result.setKeyNotMatched(!exchange.isBound(method.getBindingKey())); + boolean keyMatched = exchange.isBound(method.getBindingKey()); + result.setKeyNotMatched(!keyMatched); + if(method.hasArguments()) + { + if(keyMatched) + { + result.setArgsNotMatched(!exchange.isBound(method.getBindingKey(), method.getArguments())); + } + else + { + result.setArgsNotMatched(!exchange.isBound(method.getArguments())); + } + } } } else if (method.hasArguments()) { - result.setArgsNotMatched(!exchange.isBound(method.getArguments(), queue)); + if(queueMatched) + { + result.setArgsNotMatched(!exchange.isBound(method.getArguments(), queue)); + } + else + { + result.setArgsNotMatched(!exchange.isBound(method.getArguments())); + } } } else if(exchange != null && method.hasBindingKey()) { - result.setKeyNotMatched(!exchange.isBound(method.getBindingKey())); + final boolean keyMatched = exchange.isBound(method.getBindingKey()); + result.setKeyNotMatched(!keyMatched); if(method.hasArguments()) { - result.setArgsNotMatched(!exchange.isBound(result.getKeyNotMatched() ? null : method.getBindingKey(), method.getArguments(), queue)); + if(keyMatched) + { + result.setArgsNotMatched(!exchange.isBound(method.getBindingKey(), method.getArguments())); + } + else + { + result.setArgsNotMatched(!exchange.isBound(method.getArguments())); + } } @@ -1164,11 +1198,20 @@ public class ServerSessionDelegate extends SessionDelegate } else if(exchange != null && method.hasBindingKey()) { + final boolean keyMatched = exchange.isBound(method.getBindingKey()); + result.setKeyNotMatched(!keyMatched); + if(method.hasArguments()) { - result.setArgsNotMatched(!exchange.isBound(method.getBindingKey(), method.getArguments())); + if(keyMatched) + { + result.setArgsNotMatched(!exchange.isBound(method.getBindingKey(), method.getArguments())); + } + else + { + result.setArgsNotMatched(!exchange.isBound(method.getArguments())); + } } - result.setKeyNotMatched(!exchange.isBound(method.getBindingKey())); } else if(exchange != null && method.hasArguments()) |