private void callClosingListeners() {
    final List<CloseListener> listenersClone = new ArrayList<CloseListener>(closeListeners);

    for (final CloseListener listener : listenersClone) {
      try {
        listener.connectionClosed();
      } catch (final Throwable t) {
        // Failure of one listener to execute shouldn't prevent others
        // from
        // executing
        ActiveMQServerLogger.LOGGER.errorCallingFailureListener(t);
      }
    }
  }
  private void callFailureListeners(final ActiveMQException me) {
    final List<FailureListener> listenersClone = new ArrayList<FailureListener>(failureListeners);

    for (final FailureListener listener : listenersClone) {
      try {
        listener.connectionFailed(me, false);
      } catch (final Throwable t) {
        // Failure of one listener to execute shouldn't prevent others
        // from
        // executing
        ActiveMQServerLogger.LOGGER.errorCallingFailureListener(t);
      }
    }
  }