# Class NonClosingJarInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.util.zip.InflaterInputStream
java.util.zip.ZipInputStream
java.util.jar.JarInputStream
org.apache.tomcat.util.scan.NonClosingJarInputStream

All Implemented Interfaces:
  `Closeable, AutoCloseable`

public class NonClosingJarInputStream extends JarInputStream
When using a `JarInputStream` with an XML parser, the stream will be closed by the parser. This causes problems if multiple entries from the JAR need to be parsed. This implementation makes {`close()` a NO-OP and adds `reallyClose()` that will close the stream.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`CENATT`
`static final int`
`CENATX`
`static final int`
`CENCOM`
`static final int`
`CENCRC`
`static final int`
`CENDSK`
`static final int`
`CENEXT`
`static final int`
`CENFLG`
`static final int`
`CENHDR`
`static final int`
`CENHOW`
`static final int`
`CENLEN`
`static final int`
`CENNAM`
`static final int`
`CENOFF`
`static final long`
`CENSIG`
`static final int`
`CENSIZ`
`static final int`
`CENTIM`
`static final int`
`CENVEM`
`static final int`
`CENVER`
`static final int`
`ENDCOM`
`static final int`
`ENDHDR`
`static final int`
`ENDOFF`
`static final long`
`ENDSIG`
`static final int`
`ENDSIZ`
`static final int`
`ENDSUB`
`static final int`
`ENDTOT`
`static final int`
`EXTCRC`
`static final int`
`EXTHDR`
`static final int`
`EXTLEN`
`static final long`
`EXTSIG`
`static final int`
`EXTSIZ`
`static final int`
`LOCCRC`
`static final int`
`LOCEXT`
`static final int`
`LOCFLG`
`static final int`
`LOCHDR`
`static final int`
`LOCHOW`
`static final int`
`LOCLEN`
`static final int`
`LOCNAM`
`static final long`
`LOCSIG`
`static final int`
`LOCSIZ`
`static final int`
`LOCTIM`
`static final int`
`LOCVER`

### Fields inherited from class InflaterInputStream

`buf, inf, len`

### Fields inherited from class FilterInputStream

`in`

## Constructor Summary

Constructors
Constructor
Description
`NonClosingJarInputStream(InputStream in)`
`NonClosingJarInputStream(InputStream in, boolean verify)`

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
`void`
`reallyClose()`

### Methods inherited from class JarInputStream

`createZipEntry, getManifest, getNextEntry, getNextJarEntry, read`

### Methods inherited from class ZipInputStream

`available, closeEntry, read, readAllBytes, readNBytes, readNBytes, skip, skipNBytes, transferTo`

### Methods inherited from class InflaterInputStream

`fill, mark, markSupported, reset`

### Methods inherited from class FilterInputStream

`read`

### Methods inherited from class InputStream

`nullInputStream`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### LOCSIG

static final long LOCSIG

See Also:
  - Constant Field Values

### EXTSIG

static final long EXTSIG

See Also:
  - Constant Field Values

### CENSIG

static final long CENSIG

See Also:
  - Constant Field Values

### ENDSIG

static final long ENDSIG

See Also:
  - Constant Field Values

### LOCHDR

static final int LOCHDR

See Also:
  - Constant Field Values

### EXTHDR

static final int EXTHDR

See Also:
  - Constant Field Values

### CENHDR

static final int CENHDR

See Also:
  - Constant Field Values

### ENDHDR

static final int ENDHDR

See Also:
  - Constant Field Values

### LOCVER

static final int LOCVER

See Also:
  - Constant Field Values

### LOCFLG

static final int LOCFLG

See Also:
  - Constant Field Values

### LOCHOW

static final int LOCHOW

See Also:
  - Constant Field Values

### LOCTIM

static final int LOCTIM

See Also:
  - Constant Field Values

### LOCCRC

static final int LOCCRC

See Also:
  - Constant Field Values

### LOCSIZ

static final int LOCSIZ

See Also:
  - Constant Field Values

### LOCLEN

static final int LOCLEN

See Also:
  - Constant Field Values

### LOCNAM

static final int LOCNAM

See Also:
  - Constant Field Values

### LOCEXT

static final int LOCEXT

See Also:
  - Constant Field Values

### EXTCRC

static final int EXTCRC

See Also:
  - Constant Field Values

### EXTSIZ

static final int EXTSIZ

See Also:
  - Constant Field Values

### EXTLEN

static final int EXTLEN

See Also:
  - Constant Field Values

### CENVEM

static final int CENVEM

See Also:
  - Constant Field Values

### CENVER

static final int CENVER

See Also:
  - Constant Field Values

### CENFLG

static final int CENFLG

See Also:
  - Constant Field Values

### CENHOW

static final int CENHOW

See Also:
  - Constant Field Values

### CENTIM

static final int CENTIM

See Also:
  - Constant Field Values

### CENCRC

static final int CENCRC

See Also:
  - Constant Field Values

### CENSIZ

static final int CENSIZ

See Also:
  - Constant Field Values

### CENLEN

static final int CENLEN

See Also:
  - Constant Field Values

### CENNAM

static final int CENNAM

See Also:
  - Constant Field Values

### CENEXT

static final int CENEXT

See Also:
  - Constant Field Values

### CENCOM

static final int CENCOM

See Also:
  - Constant Field Values

### CENDSK

static final int CENDSK

See Also:
  - Constant Field Values

### CENATT

static final int CENATT

See Also:
  - Constant Field Values

### CENATX

static final int CENATX

See Also:
  - Constant Field Values

### CENOFF

static final int CENOFF

See Also:
  - Constant Field Values

### ENDSUB

static final int ENDSUB

See Also:
  - Constant Field Values

### ENDTOT

static final int ENDTOT

See Also:
  - Constant Field Values

### ENDSIZ

static final int ENDSIZ

See Also:
  - Constant Field Values

### ENDOFF

static final int ENDOFF

See Also:
  - Constant Field Values

### ENDCOM

static final int ENDCOM

See Also:
  - Constant Field Values

## Constructor Details

### NonClosingJarInputStream

public NonClosingJarInputStream(InputStream in, boolean verify) throws IOException

Throws:
  `IOException`

### NonClosingJarInputStream

public NonClosingJarInputStream(InputStream in) throws IOException

Throws:
  `IOException`

## Method Details

### close

public void close() throws IOException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`
Overrides:
  `close` in class `ZipInputStream`
Throws:
  `IOException`

### reallyClose

public void reallyClose() throws IOException

Throws:
  `IOException`