I've replicated something similar on Tomcat 10.1.34 (and also 9.0.98). Steps

1 - Download and unzip Tomcat 10.1.34
2 - Create file "webapps/ROOT/include.jsp" with contents "<h1>I've been
included!</h1>"
3 - Edit "webapps/ROOT/index.jsp" adding the following code at the bottom
of the JSP

```
<%
    String bigString = "<span style=\"color: red;\">This is a big
string</span>";
    for (int i = 0; i < 100; i++) {
        bigString += "<span style=\"display: none;\">This is a big
string</span>";
    }
    request.setAttribute("bigString", bigString);
    request.setAttribute("length", bigString.length());
%>
<p>isCommitted=<%= response.isCommitted() %></p>
<p>${bigString}</p>
<p>length=${length/1024}</p>
<p>isCommitted=<%= response.isCommitted() %></p>
<p>Before Include</p>
<jsp:include page="include.jsp"/>
<p>After Include</p>
```

3 - Start Tomcat (using Java 17)
4 - Load page http://localhost:8080/
5 - The text "I've been included!" is missing


One thing I've noticed, if I change the loop from 100 to 10 the included
content is included. Then if I change it back to 100 without restarting,
the included content is still included.

Reply via email to