bodewig     2004/06/07 05:26:03

  Modified:    .        WHATSNEW
               src/main/org/apache/tools/ant/taskdefs Zip.java
  Log:
  prevent empty archive in zip if whenempty is set to skip, PR: 22865
  
  Revision  Changes    Path
  1.618     +3 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.617
  retrieving revision 1.618
  diff -u -r1.617 -r1.618
  --- WHATSNEW  7 Jun 2004 12:05:40 -0000       1.617
  +++ WHATSNEW  7 Jun 2004 12:26:03 -0000       1.618
  @@ -136,6 +136,9 @@
   
   * <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
  
  
  
  1.126     +10 -0     ant/src/main/org/apache/tools/ant/taskdefs/Zip.java
  
  Index: Zip.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Zip.java,v
  retrieving revision 1.125
  retrieving revision 1.126
  diff -u -r1.125 -r1.126
  --- Zip.java  25 May 2004 11:48:20 -0000      1.125
  +++ Zip.java  7 Jun 2004 12:26:03 -0000       1.126
  @@ -903,6 +903,12 @@
       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 @@
               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()];
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to