code: public InputStream openInputStream()
      throws IOException
    {
      StreamSource indirectSource = _indirectSource;
      
      if (indirectSource != null) {
        return indirectSource.openInputStream();
      }
      
      TempOutputStream out = _out;
      if (out != null) {
        return out.openInputStreamNoFree();
      }
      
      // System.err.println("OpenInputStream: fail to open input stream for " + this);
      throw new IOException(L.l("{0}: no input stream is available",
                                this));
    }
docs: Returns an input stream, without freeing the results