Author: mbenson Date: Mon Oct 24 15:30:21 2005 New Revision: 328172 URL: http://svn.apache.org/viewcvs?rev=328172&view=rev Log: <delete failonerror="false" /> was still failing.
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=328172&r1=328171&r2=328172&view=diff ============================================================================== --- ant/core/trunk/src/etc/testcases/taskdefs/delete.xml (original) +++ ant/core/trunk/src/etc/testcases/taskdefs/delete.xml Mon Oct 24 15:30:21 2005 @@ -109,6 +109,12 @@ </delete> </target> + <target name="test11"> + <delete failonerror="false"> + <fileset dir="thisdenotesadirectorythatwillneverexistblah" /> + </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=328172&r1=328171&r2=328172&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 Mon Oct 24 15:30:21 2005 @@ -532,27 +532,33 @@ FileSet implicit = getImplicitFileSet(); p.add(includeEmpty ? new BCFileSet(implicit) : implicit); } - Restrict e = new Restrict(); - e.add(EXISTS); - e.add(p); + Restrict exists = new Restrict(); + exists.add(EXISTS); + exists.add(p); // delete the files in the resource collections; sort to files, then dirs Sort s = new Sort(); 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) { - log("Deleting " + r, verbosity); - if (!delete(r.getFile())) { - String message = "Unable to delete " - + (r.isDirectory() ? "directory " : "file ") + r; - if (failonerror) { - throw new BuildException(message); + s.add(exists); + String errorMessage = null; + try { + for (Iterator iter = s.iterator(); iter.hasNext();) { + FileResource r = (FileResource) iter.next(); + if (!(r.isDirectory()) || r.getFile().list().length == 0) { + log("Deleting " + r, verbosity); + if (!delete(r.getFile())) { + errorMessage = "Unable to delete " + + (r.isDirectory() ? "directory " : "file ") + r; } - log(message, - quiet ? Project.MSG_VERBOSE : Project.MSG_WARN); } } + } catch (Exception e) { + errorMessage = e.getMessage(); + } + if (errorMessage != null) { + if (failonerror) { + throw new BuildException(errorMessage); + } + log(errorMessage, quiet ? Project.MSG_VERBOSE : Project.MSG_WARN); } } 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=328172&r1=328171&r2=328172&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 Mon Oct 24 15:30:21 2005 @@ -64,4 +64,7 @@ public void test10() { executeTarget("test10"); } + public void test11() { + executeTarget("test11"); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]