code: @Override
      public void flush() throws IOException {
          PipedInputStream stream = target;
          if (stream == null) {
              return;
          }
  
          synchronized (stream) {
              stream.notifyAll();
          }
      }
docs: Notifies the readers of this {@link PipedInputStream} that bytes can be
  read. This method does nothing if this stream is not connected.
  
  @throws IOException
  if an I/O error occurs while flushing this stream.