Class CopyingResponseWrapper

java.lang.Object
javax.servlet.ServletResponseWrapper
javax.servlet.http.HttpServletResponseWrapper
org.nuxeo.ecm.platform.web.common.idempotency.CopyingResponseWrapper
All Implemented Interfaces:
AutoCloseable, javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class CopyingResponseWrapper extends javax.servlet.http.HttpServletResponseWrapper implements AutoCloseable
Response wrapper that can capture response result, using a DeferredFileOutputStream.
Since:
11.5
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final org.apache.commons.io.output.DeferredFileOutputStream
     
    protected javax.servlet.ServletOutputStream
     
    protected PrintWriter
     

    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
    CopyingResponseWrapper(int threshold, javax.servlet.http.HttpServletResponse response)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    void
     
    byte[]
     
     
    long
     
    javax.servlet.ServletOutputStream
     
     

    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, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, 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, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
  • Field Details

    • output

      protected javax.servlet.ServletOutputStream output
    • writer

      protected PrintWriter writer
    • copy

      protected final org.apache.commons.io.output.DeferredFileOutputStream copy
  • Constructor Details

    • CopyingResponseWrapper

      public CopyingResponseWrapper(int threshold, javax.servlet.http.HttpServletResponse response)
  • Method Details

    • getCopyingOutputStream

      protected CopyingServletOutputStream getCopyingOutputStream() throws IOException
      Throws:
      IOException
    • getOutputStream

      public javax.servlet.ServletOutputStream 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
    • flushBuffer

      public void flushBuffer() throws IOException
      Specified by:
      flushBuffer in interface javax.servlet.ServletResponse
      Overrides:
      flushBuffer in class javax.servlet.ServletResponseWrapper
      Throws:
      IOException
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Throws:
      IOException
    • getCopySize

      public long getCopySize()
    • getCopyAsBytes

      public byte[] getCopyAsBytes() throws IOException
      Throws:
      IOException