From 65ebecb85f727424814a1e681f3ba7cec888881d Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Tue, 28 Jan 2014 20:10:19 +0900 Subject: [PATCH] Touch a ReferenceCounted while it traverses across a pipeline --- .../java/io/netty/channel/DefaultChannelHandlerContext.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java b/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java index 768bb36317..49d08f122a 100644 --- a/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java +++ b/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java @@ -19,6 +19,7 @@ import io.netty.buffer.ByteBufAllocator; import io.netty.channel.ChannelHandler.Skip; import io.netty.util.Attribute; import io.netty.util.AttributeKey; +import io.netty.util.ReferenceCountUtil; import io.netty.util.concurrent.EventExecutor; import io.netty.util.internal.PlatformDependent; @@ -322,6 +323,7 @@ final class DefaultChannelHandlerContext implements ChannelHandlerContext { @Override public ChannelHandlerContext fireChannelRead(Object msg) { + ReferenceCountUtil.touch(msg); DefaultChannelHandlerContext next = findContextInbound(MASK_CHANNEL_READ); next.invoker.invokeChannelRead(next, msg); return this; @@ -417,6 +419,7 @@ final class DefaultChannelHandlerContext implements ChannelHandlerContext { @Override public ChannelFuture write(Object msg, ChannelPromise promise) { + ReferenceCountUtil.touch(msg); DefaultChannelHandlerContext next = findContextOutbound(MASK_WRITE); next.invoker.invokeWrite(next, msg, promise); return promise; @@ -431,6 +434,7 @@ final class DefaultChannelHandlerContext implements ChannelHandlerContext { @Override public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) { + ReferenceCountUtil.touch(msg); DefaultChannelHandlerContext next; next = findContextOutbound(MASK_WRITE); next.invoker.invokeWrite(next, msg, promise);