diff --git a/src/main/org/apache/tools/ant/taskdefs/Jar.java b/src/main/org/apache/tools/ant/taskdefs/Jar.java index 938686f1e..e964e172e 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Jar.java +++ b/src/main/org/apache/tools/ant/taskdefs/Jar.java @@ -455,15 +455,28 @@ public class Jar extends Zip { /** * Make sure we don't think we already have a MANIFEST next time this task * gets executed. + * + * @see Zip#cleanUp */ protected void cleanUp() { super.cleanUp(); + manifest = null; + } + + /** + * reset to default values. + * + * @see Zip#reset + * + * @since 1.44, Ant 1.5 + */ + public void reset() { + super.reset(); configuredManifest = null; filesetManifest = null; mergeManifests = false; mergeManifestsMain = false; - manifest = null; manifestFile = null; index = false; } diff --git a/src/main/org/apache/tools/ant/taskdefs/Zip.java b/src/main/org/apache/tools/ant/taskdefs/Zip.java index 6df2ff73b..96b38ed66 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Zip.java +++ b/src/main/org/apache/tools/ant/taskdefs/Zip.java @@ -846,14 +846,33 @@ public class Zip extends MatchingTask { * *
When we get here, the Zip file has been closed and all we * need to do is to reset some globals.
+ * + *This method will only reset globals that have been changed + * during execute(), it will not alter the attributes or nested + * child elements. If you want to reset the instance so that you + * can later zip a completely different set of files, you must use + * the reset method.
+ * + * @see #reset */ protected void cleanUp() { addedDirs.clear(); addedFiles.removeAllElements(); + entries.clear(); + } + + /** + * Makes this instance reset all attributes to their default + * values and forget all children. + * + * @since 1.72, Ant 1.5 + * + * @see #cleanUp + */ + public void reset() { filesets.removeAllElements(); zipFile = null; baseDir = null; - entries.clear(); groupfilesets.removeAllElements(); duplicate = "add"; archiveType = "zip";