code: @Override
     public long read(OutputStream stream, long length, long position) throws IOException
     {
        if (url != null)
        {
           if (tempFile != null)
           {
              return readFromFile(stream, tempFile, length, position);
           }
           else if (spoolContent)
           {
              spoolContent();
              return readFromFile(stream, tempFile, length, position);
           }
           InputStream is = url.openStream();
           try
           {
              is.skip(position);
              byte[] bytes = new byte[(int)length];
              int lg = is.read(bytes);
              if (lg > 0)
                 stream.write(bytes, 0, lg);
              return lg;
           }
           finally
           {
              is.close();
              stream.close();
           }
        }
        return super.read(stream, length, position);
     }
docs: {@inheritDoc}