Hi,
I have observed that while RequestDispatcher.forward(request, response) can throw an IllegalStateException (if the response is committed) , RequestDispatcher.include(request, response) does not throw an IllegalStateException(even if the response was committed before).
I have verified this on Tomcat 6.0.20.
I am aware that the include() method does not declare that an IllegalStateException can be thrown, but it's still an after-thought.
Any ideas on why was the servlet-api designed this way ? IMHO, if a response has been committed, no further forwarding/including should be allowed.