Как правильно использовать HttpPostRequestDecoder в Netty 4.1?
МЫ используем HttpPostRequestDecoder для чтения входящего запроса и отправки данных по линии, но сохраняем различные ошибки получения при выпуске данных и уничтожении декодера, поэтому мне интересно, есть ли руководство по использованию декодера или каков был бы идеальный жизненный цикл ?
Наш случай:
В подклассе
ChannelInboundHandlerAdapter
мы создаем декодер вvoid channelRead(ChannelHandlerContext ctx, Object msg)
позвонивdecoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(false), request)
Прочтите данные, позвонив
decoder.getBodyHttpData(name)
который немедленно освобождается после чтения данных (для строк и загрузки файлов)Уничтожение декодера в
void channelInactive(ChannelHandlerContext ctx)
позвонивdecoder.destroy()
Кажется, что это как-то работает в 4.1.59, но вызывает утечки или исключение io.netty.util.IllegalReferenceCountException при обновлении до netty 4.1.60.
Теперь я задаюсь вопросом, является ли это неправильным использованием или может быть ошибкой, поскольку жизненный цикл декодера всегда вызывал проблемы в нашем коде.
Спасибо за подсказку.