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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org