@Override
    public void memberDeparted(InternalDistributedMember theId, boolean crashed, String reason) {
      try {
        boolean wasAdmin = dm.getAdminMemberSet().contains(theId);
        if (wasAdmin) {
          // Pretend we received an AdminConsoleDisconnectMessage from the console that
          // is no longer in the JavaGroup view.
          // It must have died without sending a ShutdownMessage.
          // This fixes bug 28454.
          AdminConsoleDisconnectMessage message = new AdminConsoleDisconnectMessage();
          message.setSender(theId);
          message.setCrashed(crashed);
          message.setAlertListenerExpected(true);
          // we don't know if it was a listener so don't issue a warning
          message.setIgnoreAlertListenerRemovalFailure(true);
          message.setRecipient(dm.getDistributionManagerId());
          message.setReason(reason);
          dm.handleIncomingDMsg(message);
        }
        dm.handleManagerDeparture(theId, crashed, reason);
      } catch (DistributedSystemDisconnectedException se) {
        // ignored
      }
    }
This is the listener implementation for responding from events from the Membership Manager.
geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java