Interface ErrorPropagatingOutputStream

All Known Implementing Classes:
FastPipedOutputStream, Pipe

public interface ErrorPropagatingOutputStream
OutputStream that's connected to an InputStream somewhere, which provides ability to have InputStream report an error.
Since:
2.35
Author:
Kohsuke Kawaguchi
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Closes the stream and causes the reading InputStream to report an error.
  • Method Details

    • error

      void error(@CheckForNull Throwable e) throws IOException
      Closes the stream and causes the reading InputStream to report an error.

      This method is somewhat like OutputStream.close(), in that it signals the end of a stream. In addition to what the close method does, this method will cause the InputStream.read() method (or any other overloaded versions) to throw an IOException with the given throwable as the cause.

      InputStream will report an error only after all the data that has written before is read. IOW, the error will not magically jump over the data that was written.

      This is useful to propagate error over a pipe. If used over a channel with the remoting library that doesn't yet support this, or if the OutputStream isn't connecting to an InputStream, this method behaves exactly like OutputStream.close().

      If OutputStream is already closed or error state is set, this method will be no-op.

      Parameters:
      e - if null, this method behaves exactly like OutputStream.close()
      Throws:
      IOException