diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectAggregator.java b/codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectAggregator.java index 5a1166bb01..64153e24b3 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectAggregator.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectAggregator.java @@ -123,7 +123,7 @@ public class HttpObjectAggregator HttpRequest req = (HttpRequest) start; ret = new DefaultFullHttpRequest(req.protocolVersion(), req.method(), req.uri(), content); - } else if (start instanceof HttpResponse) { + } else if (start instanceof HttpResponse) { HttpResponse res = (HttpResponse) start; ret = new DefaultFullHttpResponse( res.protocolVersion(), res.status(), content); @@ -132,6 +132,7 @@ public class HttpObjectAggregator } ret.headers().set(start.headers()); + ret.setDecoderResult(start.decoderResult()); return ret; } diff --git a/codec-http/src/test/java/io/netty/handler/codec/http/HttpObjectAggregatorTest.java b/codec-http/src/test/java/io/netty/handler/codec/http/HttpObjectAggregatorTest.java index 6de6f08899..5afc5e5413 100644 --- a/codec-http/src/test/java/io/netty/handler/codec/http/HttpObjectAggregatorTest.java +++ b/codec-http/src/test/java/io/netty/handler/codec/http/HttpObjectAggregatorTest.java @@ -306,7 +306,9 @@ public class HttpObjectAggregatorTest { public void testBadRequest() { EmbeddedChannel ch = new EmbeddedChannel(new HttpRequestDecoder(), new HttpObjectAggregator(1024 * 1024)); ch.writeInbound(Unpooled.copiedBuffer("GET / HTTP/1.0 with extra\r\n", CharsetUtil.UTF_8)); - assertThat(ch.readInbound(), is(instanceOf(FullHttpRequest.class))); + Object inbound = ch.readInbound(); + assertThat(inbound, is(instanceOf(FullHttpRequest.class))); + assertTrue(((FullHttpRequest) inbound).getDecoderResult().isFailure()); assertNull(ch.readInbound()); ch.finish(); } @@ -315,7 +317,9 @@ public class HttpObjectAggregatorTest { public void testBadResponse() throws Exception { EmbeddedChannel ch = new EmbeddedChannel(new HttpResponseDecoder(), new HttpObjectAggregator(1024 * 1024)); ch.writeInbound(Unpooled.copiedBuffer("HTTP/1.0 BAD_CODE Bad Server\r\n", CharsetUtil.UTF_8)); - assertThat(ch.readInbound(), is(instanceOf(FullHttpResponse.class))); + Object inbound = ch.readInbound(); + assertThat(inbound, is(instanceOf(FullHttpResponse.class))); + assertTrue(((FullHttpResponse) inbound).getDecoderResult().isFailure()); assertNull(ch.readInbound()); ch.finish(); }