diff --git a/WHATSNEW b/WHATSNEW
index e4fc60a90..91fac75c3 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -176,6 +176,8 @@ Fixed bugs:
* Zip task was not zipping when only empty directories were found. Bugzilla 30365.
+* Jar task was not including manifest files when duplicate="preserve" was chosen. Bugzilla 32802.
+
* Classpath was treated in the same way as -lib options. Bugzilla 28046.
* Manual page for cvsversion contained incorrect attributes and did not say since 1.6.1.
diff --git a/src/etc/testcases/taskdefs/jar.xml b/src/etc/testcases/taskdefs/jar.xml
index 73b86141f..f03d12596 100644
--- a/src/etc/testcases/taskdefs/jar.xml
+++ b/src/etc/testcases/taskdefs/jar.xml
@@ -209,5 +209,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/etc/testcases/taskdefs/zip.xml b/src/etc/testcases/taskdefs/zip.xml
index 3363e6407..f2acdc366 100644
--- a/src/etc/testcases/taskdefs/zip.xml
+++ b/src/etc/testcases/taskdefs/zip.xml
@@ -134,6 +134,11 @@
+
+
+
+
+
diff --git a/src/main/org/apache/tools/ant/taskdefs/Zip.java b/src/main/org/apache/tools/ant/taskdefs/Zip.java
index a6ff2f486..649ff35b7 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Zip.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Zip.java
@@ -800,7 +800,9 @@ public class Zip extends MatchingTask {
getLocation());
} else {
// Create.
- createEmptyZip(zipFile);
+ if (!zipFile.exists()) {
+ needsUpdate = true;
+ }
}
return new ArchiveState(needsUpdate, initialResources);
}
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java b/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java
index bfd24bfa6..ef0da75fc 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java
@@ -256,4 +256,9 @@ public class JarTest extends BuildFileTest {
}
}
}
+ public void testManifestOnlyJar() {
+ executeTarget("testManifestOnlyJar");
+ File manifestFile = getProject().resolveFile(tempDir + "META-INF" + File.separator + "MANIFEST.MF");
+ assertTrue(manifestFile.exists());
+ }
}
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/ZipTest.java b/src/testcases/org/apache/tools/ant/taskdefs/ZipTest.java
index 8321a5fa0..0c9f1ac7d 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/ZipTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/ZipTest.java
@@ -139,4 +139,10 @@ public class ZipTest extends BuildFileTest {
assertTrue("archive should be created",
getProject().resolveFile("test3.zip").exists());
}
+ public void testZipEmptyCreate() {
+ executeTarget("zipEmptyCreate");
+ assertTrue("archive should be created",
+ getProject().resolveFile("test3.zip").exists());
+
+ }
}