bundles/org.tukani.xz/src/org/tukaani/xz/LZMA2InputStream.java
public int available() throws IOException {
        if (in == null)
            throw new XZIOException("Stream closed");

        if (exception != null)
            throw exception;

        return isLZMAChunk ? uncompressedSize
                           : Math.min(uncompressedSize, in.available());
    }
public int available() throws IOException {
        if (in == null)
            throw new XZIOException("Stream closed");

        if (exception != null)
            throw exception;

        return isLZMAChunk ? uncompressedSize
                           : Math.min(uncompressedSize, in.available());
    }
Returns the number of uncompressed bytes that can be read
without blocking. The value is returned with an assumption
that the compressed input data will be valid. If the compressed
data is corrupt, <code>CorruptedInputException</code> may get
thrown before the number of bytes claimed to be available have
been read from this input stream.
<p>
In LZMA2InputStream, the return value will be non-zero when the
decompressor is in the middle of an LZMA2 chunk. The return value
will then be the number of uncompressed bytes remaining from that
chunk. The return value can also be non-zero in the middle of
an uncompressed chunk, but then the return value depends also on
the <code>available()</code> method of the underlying InputStream.

@return      the number of uncompressed bytes that can be read
without blocking