0

我们正在使用 HttpPostRequestDecoder 来读取传入的请求并发送数据,但是在释放数据和破坏解码器时会出现各种错误,所以我想知道是否有关于如何使用解码器的指南,或者理想的生命周期是什么?

我们的案例:

  1. 在一个子类中,我们通过调用ChannelInboundHandlerAdapter创建解码器void channelRead(ChannelHandlerContext ctx, Object msg)decoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(false), request)

  2. 通过调用读取数据,读取数据后decoder.getBodyHttpData(name)立即释放(用于字符串和文件上传)

  3. void channelInactive(ChannelHandlerContext ctx)通过调用销毁解码器decoder.destroy()

这似乎在 4.1.59 中以某种方式工作,但在更新到 netty 4.1.60 时会带来泄漏或 io.netty.util.IllegalReferenceCountException。

现在我想知道这是错误的使用还是可能是一个错误,因为解码器生命周期总是在我们的代码中造成麻烦。

谢谢你的任何提示。

4

0 回答 0