diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/HttpClientCodec.java b/codec-http/src/main/java/io/netty/handler/codec/http/HttpClientCodec.java index fb0e437d4b..990faf78da 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/HttpClientCodec.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/HttpClientCodec.java @@ -222,6 +222,13 @@ public final class HttpClientCodec extends CombinedChannelDuplexHandler= 100 && statusCode < 200) { // An informational response should be excluded from paired comparison. @@ -229,10 +236,6 @@ public final class HttpClientCodec extends CombinedChannelDuplexHandlerinstanceOf(LastHttpContent.class)); + content.release(); + + assertTrue(ch.writeOutbound(new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/"))); + buffer = ch.readOutbound(); + buffer.release(); + assertNull(ch.readOutbound()); + assertTrue(ch.writeInbound(Unpooled.wrappedBuffer(data2))); + + res = ch.readInbound(); + assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1)); + assertThat(res.status(), is(HttpResponseStatus.OK)); + content = ch.readInbound(); + // HTTP 200 has content. + assertThat(content.content().readableBytes(), is(8)); + assertThat(content, CoreMatchers.instanceOf(LastHttpContent.class)); + content.release(); + + assertThat(ch.finish(), is(false)); + } + @Test public void testMultipleResponses() { String response = "HTTP/1.1 200 OK\r\n" +