You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2015/10/21 07:44:50 UTC

svn commit: r1709719 - /tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java

Author: kfujino
Date: Wed Oct 21 05:44:49 2015
New Revision: 1709719

URL: http://svn.apache.org/viewvc?rev=1709719&view=rev
Log:
Code simplify.
Separates handling of shutdown payload from member verification.

Modified:
    tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java

Modified: tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java?rev=1709719&r1=1709718&r2=1709719&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java Wed Oct 21 05:44:49 2015
@@ -143,40 +143,49 @@ public class TcpFailureDetector extends
     @Override
     public void memberDisappeared(Member member) {
         if ( membership == null ) setupMembership();
-        boolean notify = false;
         boolean shutdown = Arrays.equals(member.getCommand(),Member.SHUTDOWN_PAYLOAD);
-        if ( !shutdown )
-            if(log.isInfoEnabled())
-                log.info(sm.getString("tcpFailureDetector.memberDisappeared.verify", member));
-        synchronized (membership) {
-            if (!membership.contains(member)) {
-                if(!shutdown && log.isInfoEnabled())
-                    log.info(sm.getString("tcpFailureDetector.already.disappeared", member));
-                return;
-            }
-            //check to see if the member really is gone
-            //if the payload is not a shutdown message
-            if (shutdown || !memberAlive(member)) {
-                //not correct, we need to maintain the map
+        if (shutdown) {
+            synchronized (membership) {
+                if (!membership.contains(member)) return;
                 membership.removeMember(member);
                 removeSuspects.remove(member);
                 if (member instanceof StaticMember) {
                     addSuspects.put(member, Long.valueOf(System.currentTimeMillis()));
                 }
-                notify = true;
-            } else {
-                //add the member as suspect
-                removeSuspects.put(member, Long.valueOf(System.currentTimeMillis()));
             }
-        }
-        if ( notify ) {
-            if(!shutdown && log.isInfoEnabled())
-                log.info(sm.getString("tcpFailureDetector.member.disappeared", member));
             super.memberDisappeared(member);
         } else {
-            if(!shutdown && log.isInfoEnabled())
-                log.info(sm.getString("tcpFailureDetector.still.alive", member));
-
+            boolean notify = false;
+            if(log.isInfoEnabled())
+                log.info(sm.getString("tcpFailureDetector.memberDisappeared.verify", member));
+            synchronized (membership) {
+                if (!membership.contains(member)) {
+                    if(!shutdown && log.isInfoEnabled())
+                        log.info(sm.getString("tcpFailureDetector.already.disappeared", member));
+                    return;
+                }
+                //check to see if the member really is gone
+                if (!memberAlive(member)) {
+                    //not correct, we need to maintain the map
+                    membership.removeMember(member);
+                    removeSuspects.remove(member);
+                    if (member instanceof StaticMember) {
+                        addSuspects.put(member, Long.valueOf(System.currentTimeMillis()));
+                    }
+                    notify = true;
+                } else {
+                    //add the member as suspect
+                    removeSuspects.put(member, Long.valueOf(System.currentTimeMillis()));
+                }
+            }
+            if ( notify ) {
+                if(!shutdown && log.isInfoEnabled())
+                    log.info(sm.getString("tcpFailureDetector.member.disappeared", member));
+                super.memberDisappeared(member);
+            } else {
+                if(!shutdown && log.isInfoEnabled())
+                    log.info(sm.getString("tcpFailureDetector.still.alive", member));
+            }
         }
     }
 



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