Author: kfujino
Date: Tue Dec  3 09:48:36 2013
New Revision: 1547327

URL: http://svn.apache.org/r1547327
Log:
When the ping timeouted, make sure that memberDisappeared method is not called 
by specifying the members that has already been removed.

Modified:
    
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1547327&r1=1547326&r2=1547327&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
Tue Dec  3 09:48:36 2013
@@ -273,14 +273,12 @@ public abstract class AbstractReplicated
         }
         //update our map of members, expire some if we didn't receive a ping 
back
         synchronized (mapMembers) {
-            Iterator<Map.Entry<Member, Long>> it = 
mapMembers.entrySet().iterator();
+            Member[] members = mapMembers.keySet().toArray(new 
Member[mapMembers.size()]);
             long now = System.currentTimeMillis();
-            while ( it.hasNext() ) {
-                Map.Entry<Member,Long> entry = it.next();
-                long access = entry.getValue().longValue();
+            for (Member member : members) {
+                long access = mapMembers.get(member);
                 if ( (now - access) > timeout ) {
-                    it.remove();
-                    memberDisappeared(entry.getKey());
+                    memberDisappeared(member);
                 }
             }
         }//synch



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to