Browse Source

prevent empty archive in zip if whenempty is set to skip, PR: 22865

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276540 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 21 years ago
parent
commit
54d0543e15
2 changed files with 13 additions and 0 deletions
  1. +3
    -0
      WHATSNEW
  2. +10
    -0
      src/main/org/apache/tools/ant/taskdefs/Zip.java

+ 3
- 0
WHATSNEW View File

@@ -136,6 +136,9 @@ Fixed bugs:

* <symlink> could create cyclic links. Bugzilla Report 25181.

* <zip whenempty="skip"> didn't work in a common situation. Bugzilla
Report 22865.

Other changes:
--------------
* doc fix concerning the dependencies of the ftp task


+ 10
- 0
src/main/org/apache/tools/ant/taskdefs/Zip.java View File

@@ -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()];


Loading…
Cancel
Save