Cause of Servlet's 'Response Already Committed'

Sriram picture Sriram · Jul 3, 2012 · Viewed 44.3k times · Source

What are the common possibilities to encounter this exception in servlet - Response Already committed?

Answer

Ramesh PVK picture Ramesh PVK · Jul 3, 2012

The response gets committed because of the following reasons:

  • Because the Response buffer has reached the max buffer size. It could be because of the following reasons:

      > the bufferSize in JSP page has reached.You can increase the JSP buffer size 
        in page directive. See here, 
    
       <%@ page buffer="5kb" autoFlush="false" %>
    
      > the server default response max buffer size has reached.You can increase    
        the server default max buffer size.
    
        ServletRespnse.setBufferSize()
    
  • Some part of the code has called flushed on the response , i,e, invoked the method HttpServletResponse.flushBuffer().

  • Some part of the code has flushed the OutputStream or Writer, i,e, invoked the method HttpServletResponse.getOutputStream().flush() or `HttpServletResponse.getWriter().flush()

  • If you have forwarded to another page, where the response is both committed and closed. For example, when response.sendRedirect() has been called, the response is committed.