Netty 5 io.netty.util.IllegalReferenceCountException 異常


異常信息

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,記錄一下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM