Author: mbenson
Date: Wed Sep 28 11:25:44 2005
New Revision: 292236

URL: http://svn.apache.org/viewcvs?rev=292236&view=rev
Log:
Don't try to delete nonexistent resources; switched to a single static
reverse filesystem ResourceComparator.

Modified:
    ant/core/trunk/src/etc/testcases/taskdefs/delete.xml
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Delete.java
    ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/DeleteTest.java

Modified: ant/core/trunk/src/etc/testcases/taskdefs/delete.xml
URL: 
http://svn.apache.org/viewcvs/ant/core/trunk/src/etc/testcases/taskdefs/delete.xml?rev=292236&r1=292235&r2=292236&view=diff
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/delete.xml (original)
+++ ant/core/trunk/src/etc/testcases/taskdefs/delete.xml Wed Sep 28 11:25:44 
2005
@@ -103,6 +103,12 @@
     <expectabsent />
   </target>
 
+  <target name="test10">
+    <delete>
+      <filelist dir="${dir}" files="test10absentfile" />
+    </delete>
+  </target>
+
   <target name="cleanup" depends="test4" />
 
 </project>

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Delete.java
URL: 
http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Delete.java?rev=292236&r1=292235&r2=292236&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Delete.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Delete.java Wed Sep 
28 11:25:44 2005
@@ -29,10 +29,14 @@
 import org.apache.tools.ant.types.PatternSet;
 import org.apache.tools.ant.types.ResourceCollection;
 import org.apache.tools.ant.types.resources.Sort;
+import org.apache.tools.ant.types.resources.Restrict;
 import org.apache.tools.ant.types.resources.BCFileSet;
 import org.apache.tools.ant.types.resources.FileResource;
 import org.apache.tools.ant.types.resources.comparators.Reverse;
 import org.apache.tools.ant.types.resources.comparators.FileSystem;
+import org.apache.tools.ant.types.resources.comparators.ResourceComparator;
+import org.apache.tools.ant.types.resources.selectors.Exists;
+import org.apache.tools.ant.types.resources.selectors.ResourceSelector;
 import org.apache.tools.ant.types.selectors.OrSelector;
 import org.apache.tools.ant.types.selectors.AndSelector;
 import org.apache.tools.ant.types.selectors.NotSelector;
@@ -67,6 +71,9 @@
  */
 public class Delete extends MatchingTask {
     private static final int DELETE_RETRY_SLEEP_MILLIS = 10;
+    private static final ResourceComparator REVERSE_FILESYSTEM = new 
Reverse(new FileSystem());
+    private static final ResourceSelector EXISTS = new Exists();
+
     protected File file = null;
     protected File dir = null;
     protected Vector filesets = new Vector();
@@ -525,10 +532,13 @@
             FileSet implicit = getImplicitFileSet();
             p.add(includeEmpty ? new BCFileSet(implicit) : implicit);
         }
+        Restrict e = new Restrict();
+        e.add(EXISTS);
+        e.add(p);
         // delete the files in the resource collections; sort to files, then 
dirs
         Sort s = new Sort();
-        s.add(new Reverse(new FileSystem()));
-        s.add(p);
+        s.add(REVERSE_FILESYSTEM);
+        s.add(e);
         for (Iterator iter = s.iterator(); iter.hasNext();) {
             FileResource r = (FileResource) iter.next();
             if (!(r.isDirectory()) || r.getFile().list().length == 0) {

Modified: 
ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/DeleteTest.java
URL: 
http://svn.apache.org/viewcvs/ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/DeleteTest.java?rev=292236&r1=292235&r2=292236&view=diff
==============================================================================
--- ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/DeleteTest.java 
(original)
+++ ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/DeleteTest.java 
Wed Sep 28 11:25:44 2005
@@ -61,4 +61,7 @@
     public void test9() {
         executeTarget("test9");
     }
+    public void test10() {
+        executeTarget("test10");
+    }
 }



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

Reply via email to