Repository: commons-compress Updated Branches: refs/heads/master f52ecf865 -> cd9d5ee5d
[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/cd9d5ee5 Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/cd9d5ee5 Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/cd9d5ee5 Branch: refs/heads/master Commit: cd9d5ee5dc83fb74c0e823e0b13db397ef017251 Parents: f52ecf8 Author: Gary Gregory <ggreg...@apache.org> Authored: Sat Jun 25 14:14:57 2016 -0700 Committer: Gary Gregory <ggreg...@apache.org> Committed: Sat Jun 25 14:14:57 2016 -0700 ---------------------------------------------------------------------- .../commons/compress/archivers/Lister.java | 25 +++++++++++--------- .../commons/compress/archivers/sevenz/CLI.java | 10 ++------ .../archivers/zip/ScatterZipOutputStream.java | 13 +++++----- 3 files changed, 23 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-compress/blob/cd9d5ee5/src/main/java/org/apache/commons/compress/archivers/Lister.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/archivers/Lister.java b/src/main/java/org/apache/commons/compress/archivers/Lister.java index 19796d6..653b8f9 100644 --- a/src/main/java/org/apache/commons/compress/archivers/Lister.java +++ b/src/main/java/org/apache/commons/compress/archivers/Lister.java @@ -44,20 +44,23 @@ public final class Lister { if (!f.isFile()) { System.err.println(f + " doesn't exist or is a directory"); } - final InputStream fis = new BufferedInputStream(new FileInputStream(f)); - ArchiveInputStream ais; + try (final InputStream fis = new BufferedInputStream(new FileInputStream(f)); + final ArchiveInputStream ais = createArchiveInputStream(args, fis)) { + System.out.println("Created " + ais.toString()); + ArchiveEntry ae; + while ((ae = ais.getNextEntry()) != null) { + System.out.println(ae.getName()); + } + } + } + + private static ArchiveInputStream createArchiveInputStream(final String[] args, final InputStream fis) + throws ArchiveException { if (args.length > 1) { - ais = factory.createArchiveInputStream(args[1], fis); + return factory.createArchiveInputStream(args[1], fis); } else { - ais = factory.createArchiveInputStream(fis); - } - System.out.println("Created " + ais.toString()); - ArchiveEntry ae; - while ((ae = ais.getNextEntry()) != null) { - System.out.println(ae.getName()); + return factory.createArchiveInputStream(fis); } - ais.close(); - fis.close(); } private static void usage() { http://git-wip-us.apache.org/repos/asf/commons-compress/blob/cd9d5ee5/src/main/java/org/apache/commons/compress/archivers/sevenz/CLI.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/archivers/sevenz/CLI.java b/src/main/java/org/apache/commons/compress/archivers/sevenz/CLI.java index 1252fcf..58e52ee 100644 --- a/src/main/java/org/apache/commons/compress/archivers/sevenz/CLI.java +++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/CLI.java @@ -82,8 +82,7 @@ public class CLI { if (parent != null && !parent.exists() && !parent.mkdirs()) { throw new IOException("Cannot create " + parent); } - final FileOutputStream fos = new FileOutputStream(outFile); - try { + try (final FileOutputStream fos = new FileOutputStream(outFile)) { final long total = entry.getSize(); long off = 0; while (off < total) { @@ -99,8 +98,6 @@ public class CLI { off += bytesRead; fos.write(BUF, 0, bytesRead); } - } finally { - fos.close(); } } }; @@ -127,14 +124,11 @@ public class CLI { if (!f.isFile()) { System.err.println(f + " doesn't exist or is a directory"); } - final SevenZFile archive = new SevenZFile(f); - try { + try (final SevenZFile archive = new SevenZFile(f)) { SevenZArchiveEntry ae; while((ae=archive.getNextEntry()) != null) { mode.takeAction(archive, ae); } - } finally { - archive.close(); } } http://git-wip-us.apache.org/repos/asf/commons-compress/blob/cd9d5ee5/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 de64243..09a312c 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 @@ -110,13 +110,14 @@ public class ScatterZipOutputStream implements Closeable { */ public void writeTo(final ZipArchiveOutputStream target) throws IOException { backingStore.closeForWriting(); - final InputStream data = backingStore.getInputStream(); - for (final CompressedEntry compressedEntry : items) { - final BoundedInputStream rawStream = new BoundedInputStream(data, compressedEntry.compressedSize); - target.addRawArchiveEntry(compressedEntry.transferToArchiveEntry(), rawStream); - rawStream.close(); + try (final InputStream data = backingStore.getInputStream()) { + for (final CompressedEntry compressedEntry : items) { + try (final BoundedInputStream rawStream = new BoundedInputStream(data, + compressedEntry.compressedSize)) { + target.addRawArchiveEntry(compressedEntry.transferToArchiveEntry(), rawStream); + } + } } - data.close(); }