在Netty中可能导致java.lang.NegativeArraySizeException的原因是什么?
问题描述:
我有一个基于Netty的客户端配置了多个ChannelHandlers。首先有一个FrameDecoder(意味着解码到达线上的帧),然后是一个ChannelHandler,它应该做某些其他的事情(但不是消息处理)。在Netty中可能导致java.lang.NegativeArraySizeException的原因是什么?
我在第二个处理程序上看到很多java.lang.NegativeArraySizeException
- 这是因为FrameDecoder和第二个处理程序之间的某些工作不正常?我经常从第一个解码器返回ChannelBuffers.EMPTY_BUFFER。
答
你可以检查你是否为每个通道创建了一个FrameDecoder实例(即每个管道创建)并且不共享它的单个实例?
这样做后,你可以发布你的管道工厂的代码?