diff --git a/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java b/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java index 9017f14e6c..f40c6ddc01 100644 --- a/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java +++ b/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java @@ -1198,6 +1198,19 @@ public class DefaultChannelPipeline implements ChannelPipeline { } } + /** + * Called once a message hit the end of the {@link ChannelPipeline} without been handled by the user + * in {@link ChannelInboundHandler#channelRead(ChannelHandlerContext, Object)}. This method is responsible + * to call {@link ReferenceCountUtil#release(Object)} on the given msg at some point. + */ + protected void onUnhandledInboundMessage(ChannelHandlerContext ctx, Object msg) { + onUnhandledInboundMessage(msg); + if (logger.isDebugEnabled()) { + logger.debug("Discarded message pipeline : {}. Channel : {}.", + ctx.pipeline().names(), ctx.channel()); + } + } + /** * Called once the {@link ChannelInboundHandler#channelReadComplete(ChannelHandlerContext)} event hit * the end of the {@link ChannelPipeline}. @@ -1291,7 +1304,7 @@ public class DefaultChannelPipeline implements ChannelPipeline { @Override public void channelRead(ChannelHandlerContext ctx, Object msg) { - onUnhandledInboundMessage(msg); + onUnhandledInboundMessage(ctx, msg); } @Override