io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1

原因

handler 继承了 SimpleChannelInboundHandler,SimpleChannelInboundHandler 中 channelRead 代码如下:

public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    boolean release = true;

    try {
        if (this.acceptInboundMessage(msg)) {
            this.messageReceived(ctx, msg);
        } else {
            release = false;
            ctx.fireChannelRead(msg);
        }
    } finally {
        if (this.autoRelease && release) {
            ReferenceCountUtil.release(msg);
        }

    }

}

在 finally 代码块中释放了 msg

解决方案

handler 改继承 ChannelHandlerAdapter

参考:netty 中遇到的一个坑 SimpleInboundHandler,记录一下

相关文章:

  • 2022-12-23
  • 2021-12-14
  • 2022-12-23
  • 2022-12-23
  • 2021-08-02
  • 2021-07-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-11
  • 2021-05-30
  • 2021-07-05
  • 2022-12-23
  • 2021-09-08
  • 2021-10-27
相关资源
相似解决方案