--- old/src/share/classes/java/util/zip/ZipFile.java 2010-12-17 12:55:21.224583096 -0800 +++ new/src/share/classes/java/util/zip/ZipFile.java 2010-12-17 12:55:20.847942672 -0800 @@ -54,7 +54,7 @@ private long jzfile; // address of jzfile data private String name; // zip file name private int total; // total number of entries - private boolean closeRequested; + private volatile boolean closeRequested; private static final int STORED = ZipEntry.STORED; private static final int DEFLATED = ZipEntry.DEFLATED; @@ -423,6 +423,10 @@ * Releases the specified inflater to the list of available inflaters. */ private void releaseInflater(Inflater inf) { + if (closeRequested) { + inf.end(); + return; + } synchronized (inflaters) { inf.reset(); inflaters.add(inf);