private void writeResponseWithFuture(ChannelHandlerContext ctx, DefaultHttpRequest request, HttpResponse response) { // TODO Auto-generated method stub ChannelFuture responseFuture; ChannelFuture lastresponseFuture; responseFuture = ctx.write(response,ctx.newProgressivePromise()); lastresponseFuture = ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT); responseFuture.addListener(new ChannelProgressiveFutureListener() { @Override public void operationComplete(ChannelProgressiveFuture future) { System.err.println(future.channel() + " "+future.cause()+" "+future.isCancelled()+" "+future.isDone()+" "+future.isSuccess()+" "/*+future.sync()*/); } @Override public void operationProgressed(ChannelProgressiveFuture paramF, long paramLong1, long paramLong2) throws Exception { // TODO Auto-generated method stub } }); if (!HttpHeaders.isKeepAlive(request)) { lastresponseFuture.addListener(ChannelFutureListener.CLOSE); } }