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()); } }