/** * 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! */ public void notifyNodeDown(final long eventTime, final String nodeID) { if (!ha) { // there's no topology here return; } if (HornetQLogger.LOGGER.isDebugEnabled()) { HornetQLogger.LOGGER.debug( "nodeDown " + this + " nodeID=" + nodeID + " as being down", new Exception("trace")); } topology.removeMember(eventTime, nodeID); if (clusterConnection) { updateArraysAndPairs(); } else { synchronized (this) { if (topology.isEmpty()) { // Resetting the topology to its original condition as it was brand new receivedTopology = false; topologyArray = null; } else { updateArraysAndPairs(); if (topology.nodes() == 1 && topology.getMember(this.nodeID) != null) { // Resetting the topology to its original condition as it was brand new receivedTopology = false; } } } } }