diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/HttpMessageDecoder.java b/codec-http/src/main/java/io/netty/handler/codec/http/HttpMessageDecoder.java index f12a3f2647..409ed2e227 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/HttpMessageDecoder.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/HttpMessageDecoder.java @@ -444,19 +444,40 @@ public abstract class HttpMessageDecoder extends ReplayingDecoder= len) { + int index = internal.readerIndex(); + ByteBuf buf = internal.slice(index, len); + + // update the readerindex so an the next read its on the correct position + buffer.readerIndex(index + len); + return buf; + } else { + return buffer.readBytes(len); + } + } + private State readHeaders(ByteBuf buffer) throws TooLongFrameException { headerSize = 0; final HttpMessage message = this.message;