diff --git a/WHATSNEW b/WHATSNEW index 3ca539340..5d124e2e5 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -136,6 +136,9 @@ Fixed bugs: * could create cyclic links. Bugzilla Report 25181. +* didn't work in a common situation. Bugzilla + Report 22865. + Other changes: -------------- * doc fix concerning the dependencies of the ftp task diff --git a/src/main/org/apache/tools/ant/taskdefs/Zip.java b/src/main/org/apache/tools/ant/taskdefs/Zip.java index 33eb0ee77..e077a62da 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Zip.java +++ b/src/main/org/apache/tools/ant/taskdefs/Zip.java @@ -903,6 +903,12 @@ public class Zip extends MatchingTask { protected Resource[][] grabResources(FileSet[] filesets) { Resource[][] result = new Resource[filesets.length][]; for (int i = 0; i < filesets.length; i++) { + boolean skipEmptyNames = true; + if (filesets[i] instanceof ZipFileSet) { + ZipFileSet zfs = (ZipFileSet) filesets[i]; + skipEmptyNames = zfs.getPrefix(getProject()).equals("") + && zfs.getFullpath(getProject()).equals(""); + } DirectoryScanner rs = filesets[i].getDirectoryScanner(getProject()); if (rs instanceof ZipScanner) { @@ -911,11 +917,15 @@ public class Zip extends MatchingTask { Vector resources = new Vector(); String[] directories = rs.getIncludedDirectories(); for (int j = 0; j < directories.length; j++) { + if (!"".equals(directories[0]) || !skipEmptyNames) { resources.addElement(rs.getResource(directories[j])); + } } String[] files = rs.getIncludedFiles(); for (int j = 0; j < files.length; j++) { + if (!"".equals(files[0]) || !skipEmptyNames) { resources.addElement(rs.getResource(files[j])); + } } result[i] = new Resource[resources.size()];