Repository: commons-compress Updated Branches: refs/heads/master cd9d5ee5d -> d5aa050a6
[COMPRESS-362] Bullet-proof code using try-with-resources statements. Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/d5aa050a Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/d5aa050a Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/d5aa050a Branch: refs/heads/master Commit: d5aa050a642409fab36805b2296a99e8e5ce8449 Parents: cd9d5ee Author: Gary Gregory <ggreg...@apache.org> Authored: Sat Jun 25 14:21:22 2016 -0700 Committer: Gary Gregory <ggreg...@apache.org> Committed: Sat Jun 25 14:21:22 2016 -0700 ---------------------------------------------------------------------- .../compress/archivers/sevenz/SevenZFile.java | 16 ++++-------- .../archivers/zip/ScatterZipOutputStream.java | 5 +--- .../pack200/Pack200CompressorInputStream.java | 27 ++++++++++---------- 3 files changed, 19 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-compress/blob/d5aa050a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java index c3d8e6a..1a7014b 100644 --- a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java +++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java @@ -228,18 +228,12 @@ public class SevenZFile implements Closeable { private StartHeader readStartHeader(final long startHeaderCrc) throws IOException { final StartHeader startHeader = new StartHeader(); - DataInputStream dataInputStream = null; - try { - dataInputStream = new DataInputStream(new CRC32VerifyingInputStream( - new BoundedRandomAccessFileInputStream(file, 20), 20, startHeaderCrc)); + try (DataInputStream dataInputStream = new DataInputStream(new CRC32VerifyingInputStream( + new BoundedRandomAccessFileInputStream(file, 20), 20, startHeaderCrc))) { startHeader.nextHeaderOffset = Long.reverseBytes(dataInputStream.readLong()); startHeader.nextHeaderSize = Long.reverseBytes(dataInputStream.readLong()); startHeader.nextHeaderCrc = 0xffffFFFFL & Integer.reverseBytes(dataInputStream.readInt()); return startHeader; - } finally { - if (dataInputStream != null) { - dataInputStream.close(); - } } } @@ -910,9 +904,9 @@ public class SevenZFile implements Closeable { // In solid compression mode we need to decompress all leading folder' // streams to get access to an entry. We defer this until really needed // so that entire blocks can be skipped without wasting time for decompression. - final InputStream stream = deferredBlockStreams.remove(0); - IOUtils.skip(stream, Long.MAX_VALUE); - stream.close(); + try (final InputStream stream = deferredBlockStreams.remove(0)) { + IOUtils.skip(stream, Long.MAX_VALUE); + } } return deferredBlockStreams.get(0); http://git-wip-us.apache.org/repos/asf/commons-compress/blob/d5aa050a/src/main/java/org/apache/commons/compress/archivers/zip/ScatterZipOutputStream.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ScatterZipOutputStream.java b/src/main/java/org/apache/commons/compress/archivers/zip/ScatterZipOutputStream.java index 09a312c..7c10d37 100644 --- a/src/main/java/org/apache/commons/compress/archivers/zip/ScatterZipOutputStream.java +++ b/src/main/java/org/apache/commons/compress/archivers/zip/ScatterZipOutputStream.java @@ -92,11 +92,8 @@ public class ScatterZipOutputStream implements Closeable { * @throws IOException If writing fails */ public void addArchiveEntry(final ZipArchiveEntryRequest zipArchiveEntryRequest) throws IOException { - final InputStream payloadStream = zipArchiveEntryRequest.getPayloadStream(); - try { + try (final InputStream payloadStream = zipArchiveEntryRequest.getPayloadStream()) { streamCompressor.deflate(payloadStream, zipArchiveEntryRequest.getMethod()); - } finally { - payloadStream.close(); } items.add(new CompressedEntry(zipArchiveEntryRequest, streamCompressor.getCrc32(), streamCompressor.getBytesWrittenForLastEntry(), streamCompressor.getBytesRead())); http://git-wip-us.apache.org/repos/asf/commons-compress/blob/d5aa050a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java index 93bc8c3..e8630a7 100644 --- a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java @@ -168,27 +168,26 @@ public class Pack200CompressorInputStream extends CompressorInputStream { private Pack200CompressorInputStream(final InputStream in, final File f, final Pack200Strategy mode, final Map<String, String> props) - throws IOException { + throws IOException { originalInput = in; streamBridge = mode.newStreamBridge(); - final JarOutputStream jarOut = new JarOutputStream(streamBridge); - final Pack200.Unpacker u = Pack200.newUnpacker(); - if (props != null) { - u.properties().putAll(props); - } - if (f == null) { - u.unpack(new FilterInputStream(in) { + try (final JarOutputStream jarOut = new JarOutputStream(streamBridge)) { + final Pack200.Unpacker u = Pack200.newUnpacker(); + if (props != null) { + u.properties().putAll(props); + } + if (f == null) { + u.unpack(new FilterInputStream(in) { @Override - public void close() { + public void close() { // unpack would close this stream but we // want to give the user code more control } - }, - jarOut); - } else { - u.unpack(f, jarOut); + }, jarOut); + } else { + u.unpack(f, jarOut); + } } - jarOut.close(); } @Override