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?
+ }
+ }
}
+
}
}