bodewig 2003/02/03 07:41:18
Modified: src/main/org/apache/tools/ant/taskdefs Jar.java Log: Close original archive after checking for old manifest in <jar> - otherwise the file may still be locked on Windows and friends when we try to rename it. Submitted by: Antoine Levy-Lambert <levylambert at tiscali dash dsl dot de> Revision Changes Path 1.61 +12 -2 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Jar.java Index: Jar.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Jar.java,v retrieving revision 1.60 retrieving revision 1.61 diff -u -r1.60 -r1.61 --- Jar.java 22 Jan 2003 12:36:41 -0000 1.60 +++ Jar.java 3 Feb 2003 15:41:18 -0000 1.61 @@ -163,8 +163,9 @@ public void setDestFile(File jarFile) { super.setDestFile(jarFile); if (jarFile.exists()) { + ZipFile zf = null; try { - ZipFile zf = new ZipFile(jarFile); + zf = new ZipFile(jarFile); // must not use getEntry as "well behaving" applications // must accept the manifest in any capitalization @@ -174,13 +175,22 @@ if (ze.getName().equalsIgnoreCase("META-INF/MANIFEST.MF")) { originalManifest = getManifest(new InputStreamReader(zf - .getInputStream(ze))); + .getInputStream(ze))); } } } catch (Throwable t) { log("error while reading original manifest: " + t.getMessage(), Project.MSG_WARN); + } finally { + if (zf != null) { + try { + zf.close(); + } catch (IOException e) { + // XXX - log an error? throw an exception? + } + } } + } }