[jboss-cvs] JBossCache/src/org/jboss/cache/buddyreplication ...

Manik Surtani msurtani at jboss.com
Thu Dec 21 13:16:17 EST 2006


  User: msurtani
  Date: 06/12/21 13:16:17

  Modified:    src/org/jboss/cache/buddyreplication  Tag:
                        Branch_JBossCache_1_4_0 BuddyManager.java
  Log:
  improved robustness
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.33.2.10 +13 -3     JBossCache/src/org/jboss/cache/buddyreplication/BuddyManager.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: BuddyManager.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/buddyreplication/BuddyManager.java,v
  retrieving revision 1.33.2.9
  retrieving revision 1.33.2.10
  diff -u -b -r1.33.2.9 -r1.33.2.10
  --- BuddyManager.java	21 Dec 2006 15:42:17 -0000	1.33.2.9
  +++ BuddyManager.java	21 Dec 2006 18:16:17 -0000	1.33.2.10
  @@ -908,9 +908,14 @@
            log.trace("Waiting for enqueued view change events");
            List[] members = (List[]) queue.take(); // 2 element array - 0 - oldMembers, 1 - newMembers
   
  +         broadcastPoolMembership(members);
  +
  +         boolean rebroadcast = false;
  +
            // make sure new buddies have broadcast their pool memberships.
            while (!buddyPoolInfoAvailable(members[1]))
            {
  +            rebroadcast = true;
               synchronized (poolInfoNotifierLock)
               {
                  log.trace("Not received necessary buddy pool info for all new members yet; waiting on poolInfoNotifierLock.");
  @@ -918,6 +923,14 @@
               }
            }
   
  +         if (rebroadcast) broadcastPoolMembership(members);
  +
  +         // always refresh buddy list.
  +         reassignBuddies(members[1]);
  +      }
  +
  +      private void broadcastPoolMembership(List[] members)
  +      {
            log.trace("Broadcasting pool membership details, triggered by view change.");
            if (members[0] == null)
               broadcastBuddyPoolMembership();
  @@ -928,9 +941,6 @@
               delta.removeAll(members[0]);
               broadcastBuddyPoolMembership(delta);
            }
  -
  -         // always refresh buddy list.
  -         reassignBuddies(members[1]);
         }
   
         private boolean buddyPoolInfoAvailable(List newMembers)
  
  
  



More information about the jboss-cvs-commits mailing list