< prev index next >

src/java.base/share/classes/java/util/zip/ZipFile.java

Print this page
rev 48331 : 8193507: [REDO] Startup regression due to JDK-8185582
Reviewed-by: alanb, rriggs
Contributed-by: xueming.shen@oracle.com, claes.redestad@oracle.com

*** 410,419 **** --- 410,434 ---- throw new ZipException("invalid compression method"); } } } + private static class InflaterCleanupAction implements Runnable { + private final Inflater inf; + private final CleanableResource res; + + InflaterCleanupAction(Inflater inf, CleanableResource res) { + this.inf = inf; + this.res = res; + } + + @Override + public void run() { + res.releaseInflater(inf); + } + } + private class ZipFileInflaterInputStream extends InflaterInputStream { private volatile boolean closeRequested; private boolean eof = false; private final Cleanable cleanable;
*** 425,435 **** private ZipFileInflaterInputStream(ZipFileInputStream zfin, CleanableResource res, Inflater inf, int size) { super(zfin, inf, size); this.cleanable = CleanerFactory.cleaner().register(this, ! () -> res.releaseInflater(inf)); } public void close() throws IOException { if (closeRequested) return; --- 440,450 ---- private ZipFileInflaterInputStream(ZipFileInputStream zfin, CleanableResource res, Inflater inf, int size) { super(zfin, inf, size); this.cleanable = CleanerFactory.cleaner().register(this, ! new InflaterCleanupAction(inf, res)); } public void close() throws IOException { if (closeRequested) return;
< prev index next >