Ваш код фильтра выглядит нормально, проблема в другом месте.В комментарии уже упоминалось, что getWriter()
не может вернуть null
.Посмотрите на код, где это, кажется, происходит.Скорее всего, код пытается присвоить записывающее устройство переменной, но перехватывает и игнорирует это исключение.После того, как исключение игнорируется, кто-то пытается использовать переменную, но она содержит null
, потому что присвоение не состоялось.
Один из распространенных случаев, когда могут произойти эти «уже вызванные» ошибки, -в обработке ошибок.Сервлет начал отправлять ответ, поэтому он называется getWriter()
.Затем он сталкивается с ошибкой, и обработка ошибок пытается записать ответ об ошибке, поэтому снова вызывает getWriter()
.Вы не можете воспроизвести проблему, потому что эта ошибка возникает случайно.