Author: tabish
Date: Wed May  1 17:05:43 2013
New Revision: 1478095

URL: http://svn.apache.org/r1478095
Log:
Small update to priority support to prevent some unnecessary connection 
bouncing.  

Modified:
    
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs

Modified: 
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs?rev=1478095&r1=1478094&r2=1478095&view=diff
==============================================================================
--- 
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs
 (original)
+++ 
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs
 Wed May  1 17:05:43 2013
@@ -1045,7 +1045,7 @@ namespace Apache.NMS.ActiveMQ.Transport.
                     {
                            if (doRebalance)
                                                {
-                               if 
(connectList[0].Equals(connectedTransportURI))
+                               if (CompareUris(connectList[0], 
connectedTransportURI))
                                                        {
                                    // already connected to first in the list, 
no need to rebalance
                                    doRebalance = false;
@@ -1620,48 +1620,52 @@ namespace Apache.NMS.ActiveMQ.Transport.
                        return builder.ToString();
                }
 
-           private bool Contains(Uri newURI) 
+               private bool CompareUris(Uri first, Uri second) 
                {
-               bool result = false;
-               foreach (Uri uri in uris) 
+            if (first.Port == second.Port)
                        {
-                   if (newURI.Port == uri.Port)
+                IPHostEntry firstAddr = null;
+                IPHostEntry secondAddr = null;
+                try 
                                {
-                       IPHostEntry newAddr = null;
-                       IPHostEntry addr = null;
-                       try 
+                       firstAddr = Dns.GetHostEntry(first.Host);
+                       secondAddr = Dns.GetHostEntry(second.Host);
+                } 
+                               catch(Exception e)
+                               {
+                    if (firstAddr == null) 
                                        {
-                               newAddr = Dns.GetHostEntry(newURI.Host);
-                               addr = Dns.GetHostEntry(uri.Host);
-                       } 
-                                       catch(Exception e)
+                                               Tracer.WarnFormat("Failed to 
Lookup IPHostEntry for URI[{0}] : {1}", first, e);
+                    } 
+                                       else 
                                        {
+                                               Tracer.WarnFormat("Failed to 
Lookup IPHostEntry for URI[{0}] : {1}", second, e);
+                    }
 
-                           if (newAddr == null) 
-                                               {
-                                                       
Tracer.WarnFormat("Failed to Lookup IPHostEntry for URI[{0}] : {1}", newURI, e);
-                           } 
-                                               else 
-                                               {
-                                                       
Tracer.WarnFormat("Failed to Lookup IPHostEntry for URI[{0}] : {1}", uri, e);
-                           }
+                                       if(String.Equals(first.Host, 
second.Host, StringComparison.CurrentCultureIgnoreCase))
+                                       {
+                                               return true;
+                    }
+                }
 
-                                               if(String.Equals(newURI.Host, 
uri.Host, StringComparison.CurrentCultureIgnoreCase))
-                                               {
-                               result = true;
-                               break;
-                           }
-                                               else 
-                                               {
-                               continue;
-                           }
-                       }
+                if (firstAddr.Equals(secondAddr)) 
+                               {
+                                       return true;
+                }
+            }
 
-                       if (addr.Equals(newAddr)) 
-                                       {
-                           result = true;
-                           break;
-                       }
+                       return false;
+               }
+
+           private bool Contains(Uri newURI) 
+               {
+               bool result = false;
+               foreach (Uri uri in uris) 
+                       {
+                   if (CompareUris(newURI, uri))
+                               {
+                                       result = true;
+                                       break;
                    }
                }
 


Reply via email to