From 98b2b6d8dc0642155c588325c27c0730d395d2f4 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Thu, 3 Mar 2011 01:32:27 +0900 Subject: [PATCH] Do not write an empty buffer unnecessarily when nextChunk() returned null --- .../handler/stream/ChunkedWriteHandler.java | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/main/java/org/jboss/netty/handler/stream/ChunkedWriteHandler.java b/src/main/java/org/jboss/netty/handler/stream/ChunkedWriteHandler.java index df77013583..d35ae07547 100644 --- a/src/main/java/org/jboss/netty/handler/stream/ChunkedWriteHandler.java +++ b/src/main/java/org/jboss/netty/handler/stream/ChunkedWriteHandler.java @@ -226,34 +226,34 @@ public class ChunkedWriteHandler implements ChannelUpstreamHandler, ChannelDowns break; } - ChannelFuture writeFuture; - if (endOfInput) { - this.currentEvent = null; - closeInput(chunks); - writeFuture = currentEvent.getFuture(); - } else { - writeFuture = future(channel); - writeFuture.addListener(new ChannelFutureListener() { - @Override - public void operationComplete(ChannelFuture future) - throws Exception { - if (!future.isSuccess()) { - currentEvent.getFuture().setFailure(future.getCause()); - closeInput((ChunkedInput) currentEvent.getMessage()); - } - } - }); - } - - Channels.write( - ctx, writeFuture, chunk, - currentEvent.getRemoteAddress()); - if (suspend) { // ChunkedInput.nextChunk() returned null and it has // not reached at the end of input. Let's wait until - // more chunks arrive. + // more chunks arrive. Nothing to write or notify. break; + } else { + ChannelFuture writeFuture; + if (endOfInput) { + this.currentEvent = null; + closeInput(chunks); + writeFuture = currentEvent.getFuture(); + } else { + writeFuture = future(channel); + writeFuture.addListener(new ChannelFutureListener() { + @Override + public void operationComplete(ChannelFuture future) + throws Exception { + if (!future.isSuccess()) { + currentEvent.getFuture().setFailure(future.getCause()); + closeInput((ChunkedInput) currentEvent.getMessage()); + } + } + }); + } + + Channels.write( + ctx, writeFuture, chunk, + currentEvent.getRemoteAddress()); } } else { this.currentEvent = null;