You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2013/06/02 16:58:05 UTC

svn commit: r1488726 - /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java

Author: rgodfrey
Date: Sun Jun  2 14:58:05 2013
New Revision: 1488726

URL: http://svn.apache.org/r1488726
Log:
QPID-4897 : [Java Broker] changes to how exchangeBound result is calculated

Modified:
    qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java

Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java?rev=1488726&r1=1488725&r2=1488726&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java Sun Jun  2 14:58:05 2013
@@ -1132,30 +1132,64 @@ public class ServerSessionDelegate exten
                     {
                         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 exten
         }
         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())



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org