From 1cba7b8ec1e567141163d623ce5bc460ce68ae06 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Fri, 31 Jul 2009 17:55:38 +0000
Subject: [PATCH]     * Core:       - Catch unzip fd leaks on error       -
 Move 2 test classes out of the lib

---
 core/java/src/net/i2p/util/FileUtil.java             | 10 +++++++---
 core/java/{src => test}/net/i2p/crypto/SHA1Test.java |  0
 core/java/{src => test}/net/i2p/stat/SizeTest.java   |  0
 3 files changed, 7 insertions(+), 3 deletions(-)
 rename core/java/{src => test}/net/i2p/crypto/SHA1Test.java (100%)
 rename core/java/{src => test}/net/i2p/stat/SizeTest.java (100%)

diff --git a/core/java/src/net/i2p/util/FileUtil.java b/core/java/src/net/i2p/util/FileUtil.java
index 2946cd09ee..38073fd605 100644
--- a/core/java/src/net/i2p/util/FileUtil.java
+++ b/core/java/src/net/i2p/util/FileUtil.java
@@ -76,9 +76,10 @@ public class FileUtil {
     }
     
     public static boolean extractZip(File zipfile, File targetDir) {
+        ZipFile zip = null;
         try {
             byte buf[] = new byte[16*1024];
-            ZipFile zip = new ZipFile(zipfile);
+            zip = new ZipFile(zipfile);
             Enumeration entries = zip.entries();
             while (entries.hasMoreElements()) {
                 ZipEntry entry = (ZipEntry)entries.nextElement();
@@ -124,13 +125,16 @@ public class FileUtil {
                     }
                 }
             }
-            zip.close();
             return true;
         } catch (IOException ioe) {
             System.err.println("ERROR: Unable to extract the zip file");
             ioe.printStackTrace();
             return false;
-        } 
+        } finally {
+            if (zip != null) {
+                try { zip.close(); } catch (IOException ioe) {}
+            }
+        }
     }
     
     /**
diff --git a/core/java/src/net/i2p/crypto/SHA1Test.java b/core/java/test/net/i2p/crypto/SHA1Test.java
similarity index 100%
rename from core/java/src/net/i2p/crypto/SHA1Test.java
rename to core/java/test/net/i2p/crypto/SHA1Test.java
diff --git a/core/java/src/net/i2p/stat/SizeTest.java b/core/java/test/net/i2p/stat/SizeTest.java
similarity index 100%
rename from core/java/src/net/i2p/stat/SizeTest.java
rename to core/java/test/net/i2p/stat/SizeTest.java
-- 
GitLab