From 4606890513f72a620aa29fb7b446cd8e2d3ae5fc Mon Sep 17 00:00:00 2001 From: Xiaoyan Lin Date: Thu, 28 Jan 2016 13:31:52 -0800 Subject: [PATCH] Retain AbstractBinaryMemcacheDecoder.currentMessage when sending it out and release it when it's not used. Motivation: AbstractBinaryMemcacheDecoder.currentMessage is not retained after sending it out. Hence, if a message contains `extras`, `io.netty.util.IllegalReferenceCountException` will be thrown in `channelInactive`. Modifications: Retain AbstractBinaryMemcacheDecoder.currentMessage After putting it to `out` and release it when it's not used. Result: No IllegalReferenceCountException or leak. --- .../binary/AbstractBinaryMemcacheDecoder.java | 17 ++++++++------- .../binary/BinaryMemcacheDecoderTest.java | 21 +++++++++++++++++++ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java index eb5c5c9c7c..47e77eef4d 100644 --- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java +++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java @@ -79,6 +79,7 @@ public abstract class AbstractBinaryMemcacheDecoder