@Override
  public void disconnect() throws Exception {
    try {
      if ((keepAliveThread != null) && (keepAliveThread.isAlive())) {
        keepAliveThread.setStopped(true);
      }
    }
    finally {
      super.disconnect();
    }
  }