diff --git a/codec/src/main/java/io/netty/handler/codec/OutputMessageBuf.java b/codec/src/main/java/io/netty/handler/codec/OutputMessageBuf.java index e77397bb6c..34b4013ac0 100644 --- a/codec/src/main/java/io/netty/handler/codec/OutputMessageBuf.java +++ b/codec/src/main/java/io/netty/handler/codec/OutputMessageBuf.java @@ -167,7 +167,10 @@ final class OutputMessageBuf extends DefaultMessageBuf { } private static void writeAndRelease(ByteBuf dst, ByteBuf src) { - dst.writeBytes(src, src.readerIndex(), src.readableBytes()); - BufUtil.release(src); + try { + dst.writeBytes(src, src.readerIndex(), src.readableBytes()); + } finally { + BufUtil.release(src); + } } }