private void connectRetry(ConnectResultListener listener) {
   _log.info("connecting: " + _server.toSimpleString());
   if (isClosingOrClosed()) {
     listener.onConnectFailure(new ClosedChannelException());
     return;
   } else if (!isConnecting()) {
     listener.onConnectFailure(new RuntimeException("unable to connect"));
   } else {
     // ChannelFuture future = _bootstrap.connect(_server.getAddress());
     // future.addListener(new MyConnectListener(listener));
     _handler.reset(); // reset state to make sure new connection starts with a blank Handler state
     _handler.setConnectionListener(new AbstractNettyConnectListener(listener));
     _bootstrap.connect(_server.getAddress());
   }
 }