diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2MultiplexCodec.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2MultiplexCodec.java index 4973c1d370..515b21d495 100644 --- a/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2MultiplexCodec.java +++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2MultiplexCodec.java @@ -337,9 +337,6 @@ public class Http2MultiplexCodec extends Http2FrameCodec { } catch (Http2Exception e) { ctx.fireExceptionCaught(e); ctx.close(); - } finally { - // We need to ensure we release the goAwayFrame. - goAwayFrame.release(); } } diff --git a/codec-http2/src/test/java/io/netty/handler/codec/http2/Http2MultiplexCodecTest.java b/codec-http2/src/test/java/io/netty/handler/codec/http2/Http2MultiplexCodecTest.java index 1df73be577..7a0e8c6a3a 100644 --- a/codec-http2/src/test/java/io/netty/handler/codec/http2/Http2MultiplexCodecTest.java +++ b/codec-http2/src/test/java/io/netty/handler/codec/http2/Http2MultiplexCodecTest.java @@ -183,9 +183,13 @@ public class Http2MultiplexCodecTest { codec.onHttp2Frame(pingFrame); assertSame(parentChannel.readInbound(), pingFrame); - DefaultHttp2GoAwayFrame goAwayFrame = new DefaultHttp2GoAwayFrame(1); + DefaultHttp2GoAwayFrame goAwayFrame = + new DefaultHttp2GoAwayFrame(1, parentChannel.alloc().buffer().writeLong(8)); codec.onHttp2Frame(goAwayFrame); - assertSame(parentChannel.readInbound(), goAwayFrame); + + Http2GoAwayFrame frame = parentChannel.readInbound(); + assertSame(frame, goAwayFrame); + assertTrue(frame.release()); } @Test