[jboss-svn-commits] JBoss Common SVN: r3261 - jzipfile/trunk/src/main/java/org/jboss/jzipfile.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 16 09:57:28 EDT 2009


Author: david.lloyd at jboss.com
Date: 2009-06-16 09:57:28 -0400 (Tue, 16 Jun 2009)
New Revision: 3261

Modified:
   jzipfile/trunk/src/main/java/org/jboss/jzipfile/Zip.java
Log:
More resource close in fail state

Modified: jzipfile/trunk/src/main/java/org/jboss/jzipfile/Zip.java
===================================================================
--- jzipfile/trunk/src/main/java/org/jboss/jzipfile/Zip.java	2009-06-15 19:21:07 UTC (rev 3260)
+++ jzipfile/trunk/src/main/java/org/jboss/jzipfile/Zip.java	2009-06-16 13:57:28 UTC (rev 3261)
@@ -143,9 +143,13 @@
      * @throws IOException if an I/O error occurs
      */
     public static ZipCatalog readCatalog(InputStream inputStream) throws IOException {
-        final ZipCatalogBuilder builder = new ZipCatalogBuilder();
-        builder.readDirectory(inputStream);
-        return builder.getZipCatalog();
+        try {
+            final ZipCatalogBuilder builder = new ZipCatalogBuilder();
+            builder.readDirectory(inputStream);
+            return builder.getZipCatalog();
+        } finally {
+            Zip.safeClose(inputStream);
+        }
     }
 
     /**
@@ -171,8 +175,15 @@
      */
     public static InputStream openEntry(File zipFile, ZipEntry zipEntry) throws IOException {
         final RandomAccessFile raf = new RandomAccessFile(zipFile, "r");
-        raf.seek(zipEntry.getOffset());
-        return openEntry(new RandomAccessInputStream(raf), zipEntry);
+        boolean ok = false;
+        try {
+            raf.seek(zipEntry.getOffset());
+            final InputStream is = openEntry(new RandomAccessInputStream(raf), zipEntry);
+            ok = true;
+            return is;
+        } finally {
+            if (! ok) Zip.safeClose(raf);
+        }
     }
 
     /**




More information about the jboss-svn-commits mailing list