Program: 153
Project: 153
Buggy source:
protected final <T>void executeRequest(final Channel channel,final AsyncHttpClientConfig config,final NettyResponseFuture<T> future,final HttpRequest nettyRequest) throws ConnectException {
  if (!channel.isConnected()) {
    String url=channel.getRemoteAddress() != null ? channel.getRemoteAddress().toString() : null;
    if (url == null) {
      try {
        url=future.getURI().toString();
      }
 catch (      MalformedURLException e) {
      }
    }
    connectionsPool.removeAllConnections(channel);
    throw new ConnectException(String.format(currentThread() + "String_Node_Str",url));
  }
  channel.getPipeline().getContext(NettyAsyncHttpProvider.class).setAttachment(future);
  channel.write(nettyRequest).addListener(new ProgressListener(true,future.getAsyncHandler()));
  if (future.getRequest().getFile() != null) {
    final File file=future.getRequest().getFile();
    RandomAccessFile raf;
    long fileLength=0;
    try {
      raf=new RandomAccessFile(file,"String_Node_Str");
      fileLength=raf.length();
      ChannelFuture writeFuture;
      if (channel.getPipeline().get(SslHandler.class) != null) {
        writeFuture=channel.write(new ChunkedFile(raf,0,fileLength,8192));
        writeFuture.addListener(new ProgressListener(false,future.getAsyncHandler()));
      }
 else {
        final FileRegion region=new DefaultFileRegion(raf.getChannel(),0,fileLength);
        writeFuture=channel.write(region);
        writeFuture.addListener(new ProgressListener(false,future.getAsyncHandler()){
          public void operationComplete(          ChannelFuture cf){
            region.releaseExternalResources();
            super.operationComplete(cf);
          }
        }
);
      }
    }
 catch (    IOException ex) {
      throw new IllegalStateException(ex);
    }
  }
  try {
    future.touch();
    int delay=requestTimeout(config,future.getRequest().getPerRequestConfig());
    if (delay != -1) {
      ReaperFuture reaperFuture=new ReaperFuture(channel,future);
      Future scheduledFuture=config.reaper().scheduleAtFixedRate(reaperFuture,delay,delay,TimeUnit.MILLISECONDS);
      reaperFuture.setScheduledFuture(scheduledFuture);
      future.setReaperFuture(reaperFuture);
    }
  }
 catch (  RejectedExecutionException ex) {
    abort(future,ex);
  }
}

Fixed version (ground truth):
protected final <T>void executeRequest(final Channel channel,final AsyncHttpClientConfig config,final NettyResponseFuture<T> future,final HttpRequest nettyRequest) throws ConnectException {
  if (!channel.isConnected()) {
    String url=channel.getRemoteAddress() != null ? channel.getRemoteAddress().toString() : null;
    if (url == null) {
      try {
        url=future.getURI().toString();
      }
 catch (      MalformedURLException e) {
      }
    }
    connectionsPool.removeAllConnections(channel);
    throw new ConnectException(String.format(currentThread() + "String_Node_Str",url));
  }
  channel.write(nettyRequest).addListener(new ProgressListener(true,future.getAsyncHandler()));
  if (future.getRequest().getFile() != null) {
    final File file=future.getRequest().getFile();
    RandomAccessFile raf;
    long fileLength=0;
    try {
      raf=new RandomAccessFile(file,"String_Node_Str");
      fileLength=raf.length();
      ChannelFuture writeFuture;
      if (channel.getPipeline().get(SslHandler.class) != null) {
        writeFuture=channel.write(new ChunkedFile(raf,0,fileLength,8192));
        writeFuture.addListener(new ProgressListener(false,future.getAsyncHandler()));
      }
 else {
        final FileRegion region=new DefaultFileRegion(raf.getChannel(),0,fileLength);
        writeFuture=channel.write(region);
        writeFuture.addListener(new ProgressListener(false,future.getAsyncHandler()){
          public void operationComplete(          ChannelFuture cf){
            region.releaseExternalResources();
            super.operationComplete(cf);
          }
        }
);
      }
    }
 catch (    IOException ex) {
      throw new IllegalStateException(ex);
    }
  }
  try {
    future.touch();
    int delay=requestTimeout(config,future.getRequest().getPerRequestConfig());
    if (delay != -1) {
      ReaperFuture reaperFuture=new ReaperFuture(channel,future);
      Future scheduledFuture=config.reaper().scheduleAtFixedRate(reaperFuture,delay,delay,TimeUnit.MILLISECONDS);
      reaperFuture.setScheduledFuture(scheduledFuture);
      future.setReaperFuture(reaperFuture);
    }
  }
 catch (  RejectedExecutionException ex) {
    abort(future,ex);
  }
}