From de690dacccad934c7906ab4f98a42f4c1294a6e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=B6=E6=97=A0=E4=B8=A4=E4=B8=B6?= <442367943@qq.com> Date: Tue, 14 Jan 2020 17:51:30 +0800 Subject: [PATCH] Close encoder when handlerRemoved. (#9950) Motivation: We should close encoder when `LzfEncoder` was removed from pipeline. Modification: call `encoder.close` when `handlerRemoved` triggered. Result: Close encoder to release internal buffer. --- .../java/io/netty/handler/codec/compression/LzfEncoder.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/codec/src/main/java/io/netty/handler/codec/compression/LzfEncoder.java b/codec/src/main/java/io/netty/handler/codec/compression/LzfEncoder.java index e541218ae3..c03021cea4 100644 --- a/codec/src/main/java/io/netty/handler/codec/compression/LzfEncoder.java +++ b/codec/src/main/java/io/netty/handler/codec/compression/LzfEncoder.java @@ -137,4 +137,10 @@ public class LzfEncoder extends MessageToByteEncoder { recycler.releaseInputBuffer(input); } } + + @Override + public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { + encoder.close(); + super.handlerRemoved(ctx); + } }