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

Reply via email to