Let me start with some history, During upgrade to 7.0.52, I was facing the IOException: Stream closed error. but everything was working fine with old tomcat version 7.0.33 so I started looking from which version problem starts and found it started from 7.0.39.
The problem is, tomcat is not flushing the response automatically as it does previously and thus response.isCommited variable is not being set ( as per my understanding after flush, the response is marked committed (first flush)). Due to this, tiles (TilesRequestProcessor.doForward) (Struts1) tries to forward the request (instead of include) and try to flush closed stream causing stream closed error. Also one observation, it is not flushing though buffer is full. I have fixed this by manually flushing the response in my code but how this flushing problem gets introduced from 7.0.39 ? -- ~ Prashant Kadam