Я думаю, это может вам помочь:
input.buffered(1024).reader().forEachLine {
fos.bufferedWriter().write(it)
}
Я попытался использовать Tomcat 6.16 и 6.18. Это, определенно единственное, просачиваются цепочка.
Кажется, что что-то сохраняет ссылку на сервлет outputStream. Я перенес ServletOutputStream в свой собственный OutputStream и затем удостоверился, что ссылка уничтожается. Это устранило проблему так, чтобы я больше не видел, что зафиксированный ответ передал в.
Это - нечетный побочный эффект содержания ссылки. Но я не думаю, что это квалифицирует как ошибка Tomcat. Более вероятно ошибка в ImageIO.createImageOutputStream (), что я подозреваю, содержит ссылку.
Какую версию Tomcat Вы используете? Мне это походит на ошибку в Tomcat, я не могу думать ни о какой причине, почему Ваш doFilter метод нужно назвать с ответом, это уже фиксировалось (если тот фильтр является единственным в цепочке, действительно ли Вы уверены в этом?).