azkaban-aplcache

Merge pull request #633 from bmsq/GH-632 Fixes leaked file

7/1/2016 2:09:09 PM

Details

diff --git a/azkaban-common/src/main/java/azkaban/project/ProjectManager.java b/azkaban-common/src/main/java/azkaban/project/ProjectManager.java
index 52024f1..a069c29 100644
--- a/azkaban-common/src/main/java/azkaban/project/ProjectManager.java
+++ b/azkaban-common/src/main/java/azkaban/project/ProjectManager.java
@@ -579,6 +579,7 @@ public class ProjectManager {
     ZipFile zipfile = new ZipFile(archiveFile);
     File unzipped = Utils.createTempDir(tempDir);
     Utils.unzip(zipfile, unzipped);
+    zipfile.close();
 
     return unzipped;
   }
diff --git a/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java b/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
index 72c9c54..3eea794 100644
--- a/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
+++ b/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
@@ -1044,7 +1044,7 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
   /**
    * this only returns user permissions, but not group permissions and proxy
    * users
-   * 
+   *
    * @param project
    * @param ret
    */
@@ -1754,12 +1754,12 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
         }
         ret.put("error", "Installation Failed.<br>" + error);
       } finally {
-        if (tempDir.exists()) {
-          FileUtils.deleteDirectory(tempDir);
-        }
         if (out != null) {
           out.close();
         }
+        if (tempDir.exists()) {
+          FileUtils.deleteDirectory(tempDir);
+        }
       }
 
       ret.put("version", String.valueOf(project.getVersion()));