From 8bcea35d2ea949f4fc2b09fea06c20e5a0adb07d Mon Sep 17 00:00:00 2001 From: Bartek Kowalczyk Date: Mon, 21 Jan 2019 07:45:03 +0100 Subject: [PATCH] Set result for decoded request and add test for #8721 (#8721) Motivation: I want to fix bug in vert.x project (eclipse-vertx/vert.x#2562) caused by ComposedLastHttpContent result being null. I don't know if it is intentional that this last decoded chuck in the issue returns null, but if not - I am providing fix for that. Modification: * Added new constructor in ComposedLastHttpContent allowing to pass DecoderResult * set DecoderResult.SUCCESS for created ComposedLastHttpContent in HttpContentEncoder * set DecoderResult.SUCCESS for created ComposedLastHttpContent in HttpContentDecoder Result: Fixes eclipse-vertx/vert.x#2562 --- .../codec/http/ComposedLastHttpContent.java | 5 +++ .../codec/http/HttpContentDecoder.java | 3 +- .../codec/http/HttpContentEncoder.java | 3 +- .../codec/http/HttpContentCompressorTest.java | 4 ++ .../codec/http/HttpContentDecoderTest.java | 42 +++++++++++++++++++ .../codec/http/HttpContentEncoderTest.java | 3 ++ 6 files changed, 58 insertions(+), 2 deletions(-) diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/ComposedLastHttpContent.java b/codec-http/src/main/java/io/netty/handler/codec/http/ComposedLastHttpContent.java index b8b7dc967f..1ef39e56ff 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/ComposedLastHttpContent.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/ComposedLastHttpContent.java @@ -28,6 +28,11 @@ final class ComposedLastHttpContent implements LastHttpContent { this.trailingHeaders = trailingHeaders; } + ComposedLastHttpContent(HttpHeaders trailingHeaders, DecoderResult result) { + this(trailingHeaders); + this.result = result; + } + @Override public HttpHeaders trailingHeaders() { return trailingHeaders; diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/HttpContentDecoder.java b/codec-http/src/main/java/io/netty/handler/codec/http/HttpContentDecoder.java index e85adaaa37..3eb7ad3e33 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/HttpContentDecoder.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/HttpContentDecoder.java @@ -19,6 +19,7 @@ import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.embedded.EmbeddedChannel; import io.netty.handler.codec.CodecException; +import io.netty.handler.codec.DecoderResult; import io.netty.handler.codec.MessageToMessageDecoder; import io.netty.util.ReferenceCountUtil; @@ -164,7 +165,7 @@ public abstract class HttpContentDecoder extends MessageToMessageDecoder