Browse Source

<delete failonerror="false" /> was still failing.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@328172 13f79535-47bb-0310-9956-ffa450edef68
master
Matthew Jason Benson 20 years ago
parent
commit
a360e39fa7
3 changed files with 30 additions and 15 deletions
  1. +6
    -0
      src/etc/testcases/taskdefs/delete.xml
  2. +21
    -15
      src/main/org/apache/tools/ant/taskdefs/Delete.java
  3. +3
    -0
      src/testcases/org/apache/tools/ant/taskdefs/DeleteTest.java

+ 6
- 0
src/etc/testcases/taskdefs/delete.xml View File

@@ -109,6 +109,12 @@
</delete>
</target>

<target name="test11">
<delete failonerror="false">
<fileset dir="thisdenotesadirectorythatwillneverexistblah" />
</delete>
</target>

<target name="cleanup" depends="test4" />

</project>

+ 21
- 15
src/main/org/apache/tools/ant/taskdefs/Delete.java View File

@@ -532,27 +532,33 @@ public class Delete extends MatchingTask {
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);
}
}



+ 3
- 0
src/testcases/org/apache/tools/ant/taskdefs/DeleteTest.java View File

@@ -64,4 +64,7 @@ public class DeleteTest extends BuildFileTest {
public void test10() {
executeTarget("test10");
}
public void test11() {
executeTarget("test11");
}
}

Loading…
Cancel
Save