Class BufferingHttpServletResponse

java.lang.Object
javax.servlet.ServletResponseWrapper
javax.servlet.http.HttpServletResponseWrapper
org.nuxeo.ecm.platform.web.common.requestcontroller.filter.BufferingHttpServletResponse
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class BufferingHttpServletResponse extends javax.servlet.http.HttpServletResponseWrapper
Buffers the response until stopBuffering() is called.

This allows a container to commit a transaction before the body is written to the client.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     

    Fields inherited from interface javax.servlet.http.HttpServletResponse

    SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_FOUND, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY
  • Constructor Summary

    Constructors
    Constructor
    Description
    BufferingHttpServletResponse(javax.servlet.http.HttpServletResponse response)
    A HttpServletResponse wrapper that buffers all data until stopBuffering() is called.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Don't flush if we are still buffering.
     
     
    boolean
     
    void
     
    void
    Stops buffering and sends any buffered data to the response's output stream.

    Methods inherited from class javax.servlet.http.HttpServletResponseWrapper

    addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus, setTrailerFields

    Methods inherited from class javax.servlet.ServletResponseWrapper

    getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isWrapperFor, isWrapperFor, reset, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale, setResponse

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface javax.servlet.ServletResponse

    getBufferSize, getCharacterEncoding, getContentType, getLocale, reset, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
  • Field Details

  • Constructor Details

    • BufferingHttpServletResponse

      public BufferingHttpServletResponse(javax.servlet.http.HttpServletResponse response) throws IOException
      A HttpServletResponse wrapper that buffers all data until stopBuffering() is called.

      stopBuffering() MUST be called in a finally statement in order for resources to be closed properly.

      Throws:
      IOException
  • Method Details

    • getOutputStream

      public BufferingServletOutputStream getOutputStream() throws IOException
      Specified by:
      getOutputStream in interface javax.servlet.ServletResponse
      Overrides:
      getOutputStream in class javax.servlet.ServletResponseWrapper
      Throws:
      IOException
    • getWriter

      public PrintWriter getWriter() throws IOException
      Specified by:
      getWriter in interface javax.servlet.ServletResponse
      Overrides:
      getWriter in class javax.servlet.ServletResponseWrapper
      Throws:
      IOException
    • stopBuffering

      public void stopBuffering() throws IOException
      Stops buffering and sends any buffered data to the response's output stream.
      Throws:
      IOException
    • isCommitted

      public boolean isCommitted()
      Specified by:
      isCommitted in interface javax.servlet.ServletResponse
      Overrides:
      isCommitted in class javax.servlet.ServletResponseWrapper
    • resetBuffer

      public void resetBuffer()
      Specified by:
      resetBuffer in interface javax.servlet.ServletResponse
      Overrides:
      resetBuffer in class javax.servlet.ServletResponseWrapper
    • flushBuffer

      public void flushBuffer() throws IOException
      Don't flush if we are still buffering.
      Specified by:
      flushBuffer in interface javax.servlet.ServletResponse
      Overrides:
      flushBuffer in class javax.servlet.ServletResponseWrapper
      Throws:
      IOException