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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to