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 | d11d79e5a58aef58593960e92b4ddc72fe8a3b24 (patch) | |
| tree | f6244a9b100bdcc33bc80cd8edc1189b27b8d8a2 /qpid/java | |
| parent | 6bee3b50ff986b3f423e5982ec55895a2deb688c (diff) | |
| download | qpid-python-d11d79e5a58aef58593960e92b4ddc72fe8a3b24.tar.gz | |
QPID-4897 : [Java Broker] changes to how exchangeBound result is calculated
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1488726 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java | 59 |
1 files changed, 51 insertions, 8 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java index 74a90374cb..548b75f949 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java +++ b/qpid/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()) |
