Hello, Since upgrading from Tomcat 9.0.56 to Tomcat 10.0.16, the localhost-logfile is filling up with stacks of the form:
07-Mar-2022 07:24:01.780 SCHWERWIEGEND [https-openssl-nio-443-exec-21] org.apache.catalina.core.ApplicationDispatcher.invoke Servlet.service() for servlet [jsp] threw exception java.lang.IllegalStateException: Connection [66], Stream [113], Unable to write to stream once it has been closed at org.apache.coyote.http2.Stream$StreamOutputBuffer.doWrite(Stream.java:843) at org.apache.coyote.http11.filters.GzipOutputFilter$FakeOutputStream.write(GzipOutputFilter.java:159) at java.base/java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:252) at java.base/java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:210) at java.base/java.util.zip.GZIPOutputStream.write(GZIPOutputStream.java:148) at org.apache.coyote.http11.filters.GzipOutputFilter.doWrite(GzipOutputFilter.java:69) at org.apache.coyote.http2.Http2OutputBuffer.doWrite(Http2OutputBuffer.java:59) at org.apache.coyote.Response.doWrite(Response.java:625) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:340) at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:783) at org.apache.catalina.connector.OutputBuffer.realWriteChars(OutputBuffer.java:453) at org.apache.catalina.connector.OutputBuffer.flushCharBuffer(OutputBuffer.java:788) at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:727) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:505) at org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:148) at org.apache.catalina.filters.ExpiresFilter$XPrintWriter.write(ExpiresFilter.java:850) at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:275) at java.base/java.io.PrintWriter.write(PrintWriter.java:506) at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:275) at java.base/java.io.PrintWriter.write(PrintWriter.java:506) at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:112) at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:160) at org.apache.jsp.WEB_002dINF.jsp.businessrelations.ticket_005frelations_inc_jsp._jspService(ticket_005frelations_inc_jsp.java:702) ... The jsp-file varies between the stacktraces, so it is not related to a certain jsp-File. The stream.java looks like (which didn’t change from Tomcat 9 to 10): @Override public final synchronized int doWrite(ByteBuffer chunk) throws IOException { if (closed) { throw new IllegalStateException( sm.getString("stream.closed", getConnectionId(), getIdAsString())); } The generated java file from the jsp file only catches IOException: ... if (!(t instanceof jakarta.servlet.jsp.SkipPageException)){ out = _jspx_out; if (out != null && out.getBufferSize() != 0) try { if (response.isCommitted()) { out.flush(); } else { out.clearBuffer(); } } catch (java.io.IOException e) {} if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); else throw new ServletException(t); } It seems like the browser is sometimes closing the stream and this causes Tomcat to write exceptions in the localhost-logfile. Is there any way to prevent this? It is strange, that it didn’t happen with Tomcat 9 or maybe a Firefox-Update is causing the issue(?) Access-log shows Firefox 97. Greetings, Thomas