Как правильно использовать HttpPostRequestDecoder в Netty 4.1?

МЫ используем 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, но вызывает утечки или исключение io.netty.util.IllegalReferenceCountException при обновлении до netty 4.1.60.

Теперь я задаюсь вопросом, является ли это неправильным использованием или может быть ошибкой, поскольку жизненный цикл декодера всегда вызывал проблемы в нашем коде.

Спасибо за подсказку.

0 ответов

Другие вопросы по тегам