[jboss-cvs] JBoss Messaging SVN: r3298 - branches/Branch_Stable/src/main/org/jboss/messaging/core/impl/postoffice.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 7 19:28:02 EST 2007


Author: timfox
Date: 2007-11-07 19:28:02 -0500 (Wed, 07 Nov 2007)
New Revision: 3298

Modified:
   branches/Branch_Stable/src/main/org/jboss/messaging/core/impl/postoffice/MessagingPostOffice.java
Log:
http://jira.jboss.org/jira/browse/JBMESSAGING-1142


Modified: branches/Branch_Stable/src/main/org/jboss/messaging/core/impl/postoffice/MessagingPostOffice.java
===================================================================
--- branches/Branch_Stable/src/main/org/jboss/messaging/core/impl/postoffice/MessagingPostOffice.java	2007-11-07 19:36:53 UTC (rev 3297)
+++ branches/Branch_Stable/src/main/org/jboss/messaging/core/impl/postoffice/MessagingPostOffice.java	2007-11-08 00:28:02 UTC (rev 3298)
@@ -1933,7 +1933,7 @@
 
       return removed;
    }
-
+   
    private synchronized void calculateFailoverMap()
    {
    	failoverMap.clear();
@@ -1941,39 +1941,36 @@
    	View view = groupMember.getCurrentView();
    	
    	Vector members = view.getMembers();
-   	
+   		
    	for (int i = 0; i < members.size(); i++)
    	{
-   		Address address = (Address)members.get(i);
+   	   Address address = (Address)members.get(i);
+         
+         Integer theNodeID = findNodeIDForAddress(address);
+         
+         if (theNodeID == null)
+         {
+            continue;
+         }
+               
+         Integer fnodeID;
+         int fi = i;
+         do
+         {
+            fi++;
+            
+            if (fi == members.size())
+            {
+               fi = 0;
+            }
+         
+            Address failoverAddress = (Address)members.get(fi);
+            
+            fnodeID = findNodeIDForAddress(failoverAddress);
+         }
+         while (fnodeID == null);
    		
-   		Integer theNodeID = findNodeIDForAddress(address);
-   		
-   		if (theNodeID == null)
-   		{
-   			throw new IllegalStateException("Cannot find node id for address " + address);
-   		}
-   		
-   		int j;
-   		
-   		if (i != members.size() - 1)
-   		{
-   			j = i + 1;
-   		}
-   		else
-   		{
-   			j = 0;
-   		}
-   		
-   		Address failoverAddress = (Address)members.get(j);
-   		
-   		Integer failoverNodeID = this.findNodeIDForAddress(failoverAddress);
-   		
-   		if (failoverNodeID == null)
-   		{
-   			throw new IllegalStateException("Cannot find node id for address " + failoverAddress);
-   		}
-   		
-   		failoverMap.put(theNodeID, failoverNodeID);	   			   		   
+   		failoverMap.put(theNodeID, fnodeID);	   			   		   
    	}   	
    	
    	int fid = ((Integer)failoverMap.get(new Integer(thisNodeID))).intValue();




More information about the jboss-cvs-commits mailing list