bundles/org.tukani.xz/src/org/tukaani/xz/XZInputStream.java
public void close(boolean closeInput) throws IOException {
        if (in != null) {
            if (xzIn != null) {
                xzIn.close(false);
                xzIn = null;
            }

            try {
                if (closeInput)
                    in.close();
            } finally {
                in = null;
            }
        }
    }
public void close(boolean closeInput) throws IOException {
        if (in != null) {
            if (xzIn != null) {
                xzIn.close(false);
                xzIn = null;
            }

            try {
                if (closeInput)
                    in.close();
            } finally {
                in = null;
            }
        }
    }
public void close ( boolean closeInput ) throws IOException { if ( in != null ) { if ( xzIn != null ) { xzIn . close ( false ) ; xzIn = null ; } try { if ( closeInput ) in . close ( ) ; } finally { in = null ; } } }
Closes the stream and optionally calls <code>in.close()</code>.
If the stream was already closed, this does nothing.
If <code>close(false)</code> has been called, a further
call of <code>close(true)</code> does nothing (it doesn't call
<code>in.close()</code>).
<p>
If you don't want to close the underlying <code>InputStream</code>,
there is usually no need to worry about closing this stream either;
it's fine to do nothing and let the garbage collector handle it.
However, if you are using {@link ArrayCache}, <code>close(false)</code>
can be useful to put the allocated arrays back to the cache without
closing the underlying <code>InputStream</code>.
<p>
Note that if you successfully reach the end of the stream
(<code>read</code> returns <code>-1</code>), the arrays are
automatically put back to the cache by that <code>read</code> call. In
this situation <code>close(false)</code> is redundant (but harmless).

@throws  IOException if thrown by <code>in.close()</code>

@since 1.7
Closes the stream and optionally calls <code > in . close () < / code > . If the stream was already closed this does nothing . If <code > close ( false ) < / code > has been called a further call of <code > close ( true ) < / code > does nothing ( it doesn t call <code > in . close () < / code > ) . <p > If you don t want to close the underlying <code > InputStream< / code > there is usually no need to worry about closing this stream either ; it s fine to do nothing and let the garbage collector handle it . However if you are using { @link ArrayCache } <code > close ( false ) < / code > can be useful to put the allocated arrays back to the cache without closing the underlying <code > InputStream< / code > . <p > Note that if you successfully reach the end of the stream ( <code > read< / code > returns <code > - 1< / code > ) the arrays are automatically put back to the cache by that <code > read< / code > call . In this situation <code > close ( false ) < / code > is redundant ( but harmless ) .