@Override public void notifyNodeDown(final long eventTime,final String nodeID){
  if (!ha) {
    return;
  }
  if (logger.isTraceEnabled()) {
    logger.trace("nodeDown " + this + " nodeID="+ nodeID+ " as being down",new Exception("trace"));
  }
  topology.removeMember(eventTime,nodeID);
  if (clusterConnection) {
    updateArraysAndPairs();
  }
 else {
    if (topology.isEmpty()) {
      receivedTopology=false;
      topologyArray=null;
    }
 else {
      updateArraysAndPairs();
      if (topology.nodes() == 1 && topology.getMember(this.nodeID) != null) {
        receivedTopology=false;
      }
    }
  }
}

@ Override public void notifyNodeDown ( final long eventTime , final String nodeID ) { if ( ! ha ) { return ; } if ( logger . isTraceEnabled ( ) ) { logger . trace ( "nodeDown " + this + " nodeID=" + nodeID + " as being down" , new Exception ( "trace" ) ) ; } topology . removeMember ( eventTime , nodeID ) ; if ( clusterConnection ) { updateArraysAndPairs ( ) ; } else { if ( topology . isEmpty ( ) ) { receivedTopology = false ; topologyArray = null ; } else { updateArraysAndPairs ( ) ; if ( topology . nodes ( ) == 1 && topology . getMember ( this . nodeID ) != null ) { receivedTopology = false ; } } } }
this is directly called when the connection to the node is gone , or when the node sends a disconnection . look for callers of this method !
