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());
   }
 }
  protected void setResponseProcessor(
      HttpResponseProcessor responseProcessor, SendRequestResultListener l)
      throws DatabusException {
    _handler.setResponseProcessor(responseProcessor);
    _handler.setRequestListener(l);

    /*
    if (null != _channel)
    {
      ChannelPipeline channelPipeline = _channel.getPipeline();
      channelPipeline.replace("handler", "handler", _handler);
    }
    */
    assert (_channel != null);
    assert (_channel.getPipeline().get("handler") != null);
  }
 protected void setConnectListener(ConnectResultListener l) {
   _handler.setConnectionListener(l);
 }