[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