According to Hanumant Deshmukh, et al. book, it is committed after calling the flush method of the PrintWriter object.
On a different note, the book mentioned that calling the sendRedirect method after a response has been committed will throw an IllegalStateException. I tried that and it did not throw any exception. It just did not redirect.