Yes, if the response buffer gets full, then addition of more data to the buffer will automatically send the data to the client, which means response will be committed. And if that happens then according to the specs, forward() 'should' fail for sure.
But
tomcat 4 behaves a bit weird.
a) If the data is not commited, forward() works as expected
b) If the data is already commited, then forward() does not do anything. It neither forwards the request nor does it throw any exceptions. And you see the output that was generated before the call to forward()
Btw, about the buffer size; it is mandated for JSP pages to be atleast 8kb by default, I m not sure about servlets.
-j