Class CachedOutputStream

java.lang.Object
java.io.OutputStream
org.apache.cxf.io.CachedOutputStream
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable
Direct Known Subclasses:
CacheAndWriteOutputStream, WriteOnCloseOutputStream

public class CachedOutputStream extends OutputStream
  • Field Details

    • outputLocked

      protected boolean outputLocked
    • currentStream

      protected OutputStream currentStream
  • Constructor Details

    • CachedOutputStream

      public CachedOutputStream()
    • CachedOutputStream

      public CachedOutputStream(long threshold)
  • Method Details

    • holdTempFile

      public void holdTempFile()
    • releaseTempFileHold

      public void releaseTempFileHold()
    • registerCallback

      public void registerCallback(CachedOutputStreamCallback cb)
    • deregisterCallback

      public void deregisterCallback(CachedOutputStreamCallback cb)
    • getCallbacks

      public List<CachedOutputStreamCallback> getCallbacks()
    • doFlush

      protected void doFlush() throws IOException
      Perform any actions required on stream flush (freeze headers, reset output stream ... etc.)
      Throws:
      IOException
    • flush

      public void flush() throws IOException
      Specified by:
      flush in interface Flushable
      Overrides:
      flush in class OutputStream
      Throws:
      IOException
    • doClose

      protected void doClose() throws IOException
      Perform any actions required on stream closure (handle response etc.)
      Throws:
      IOException
    • postClose

      protected void postClose() throws IOException
      Perform any actions required after stream closure (close the other related stream etc.)
      Throws:
      IOException
    • lockOutputStream

      public void lockOutputStream() throws IOException
      Locks the output stream to prevent additional writes, but maintains a pointer to it so an InputStream can be obtained
      Throws:
      IOException
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class OutputStream
      Throws:
      IOException
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • resetOut

      public void resetOut(OutputStream out, boolean copyOldContent) throws IOException
      Replace the original stream with the new one, optionally copying the content of the old one into the new one. When with Attachment, needs to replace the xml writer stream with the stream used by AttachmentSerializer or copy the cached output stream to the "real" output stream, i.e. onto the wire.
      Parameters:
      out - the new output stream
      copyOldContent - flag indicating if the old content should be copied
      Throws:
      IOException
    • copyStream

      public static void copyStream(InputStream in, OutputStream out, int bufferSize) throws IOException
      Throws:
      IOException
    • size

      public long size()
    • getBytes

      public byte[] getBytes() throws IOException
      Throws:
      IOException
    • writeCacheTo

      public void writeCacheTo(OutputStream out) throws IOException
      Throws:
      IOException
    • writeCacheTo

      public void writeCacheTo(StringBuilder out, long limit) throws IOException
      Throws:
      IOException
    • writeCacheTo

      public void writeCacheTo(StringBuilder out, String charsetName, long limit) throws IOException
      Throws:
      IOException
    • writeCacheTo

      public void writeCacheTo(StringBuilder out) throws IOException
      Throws:
      IOException
    • writeCacheTo

      public void writeCacheTo(StringBuilder out, String charsetName) throws IOException
      Throws:
      IOException
    • getOut

      public OutputStream getOut()
      Returns:
      the underlying output stream
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • onWrite

      protected void onWrite() throws IOException
      Throws:
      IOException
    • write

      public void write(byte[] b, int off, int len) throws IOException
      Overrides:
      write in class OutputStream
      Throws:
      IOException
    • write

      public void write(byte[] b) throws IOException
      Overrides:
      write in class OutputStream
      Throws:
      IOException
    • write

      public void write(int b) throws IOException
      Specified by:
      write in class OutputStream
      Throws:
      IOException
    • getTempFile

      public File getTempFile()
    • getInputStream

      public InputStream getInputStream() throws IOException
      Throws:
      IOException
    • setOutputDir

      public void setOutputDir(File outputDir) throws IOException
      Throws:
      IOException
    • getThreshold

      public long getThreshold()
    • setThreshold

      public void setThreshold(long threshold)
    • setMaxSize

      public void setMaxSize(long maxSize)
    • setCipherTransformation

      public void setCipherTransformation(String cipherTransformation)
    • setDefaultMaxSize

      public static void setDefaultMaxSize(long l)
    • setDefaultThreshold

      public static void setDefaultThreshold(int i)
    • isThresholdSysPropSet

      public static boolean isThresholdSysPropSet()
      Returns true if the default threshold is explicitly set via CachedConstants.THRESHOLD_SYS_PROP
    • setDefaultCipherTransformation

      public static void setDefaultCipherTransformation(String n)