Browse Source

Pr 40972 Directory Deletion Dont Work Properly

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@479017 13f79535-47bb-0310-9956-ffa450edef68
master
Jacobus Martinus Kruithof 18 years ago
parent
commit
a0c024f4c2
3 changed files with 79 additions and 4 deletions
  1. +2
    -0
      WHATSNEW
  2. +8
    -4
      src/main/org/apache/tools/ant/taskdefs/Delete.java
  3. +69
    -0
      src/tests/antunit/taskdefs/delete-test.xml

+ 2
- 0
WHATSNEW View File

@@ -6,6 +6,8 @@ Changes that could break older environments:

Fixed bugs:
-----------
* Directory Deletion Dont Work Properly
Bugzilla 40972

* docletpath attribute of javadoc ignored.
Bugzilla 40900.


+ 8
- 4
src/main/org/apache/tools/ant/taskdefs/Delete.java View File

@@ -562,10 +562,14 @@ public class Delete extends MatchingTask {
fs = (FileSet) fs.clone();
fs.setProject(getProject());
}
resourcesToDelete.add(fs);
if (includeEmpty && fs.getDir().isDirectory()) {
filesetDirs.add(new ReverseDirs(fs.getDir(),
fs.getDirectoryScanner().getIncludedDirectories()));
if (!fs.getDir().isDirectory()) {
handle("Directory does not exist:" + fs.getDir());
} else {
resourcesToDelete.add(fs);
if (includeEmpty) {
filesetDirs.add(new ReverseDirs(fs.getDir(), fs
.getDirectoryScanner().getIncludedDirectories()));
}
}
}
resourcesToDelete.add(filesetDirs);


+ 69
- 0
src/tests/antunit/taskdefs/delete-test.xml View File

@@ -0,0 +1,69 @@
<?xml version="1.0"?>
<project name="delete-test" basedir="." default="all"
xmlns:au="antlib:org.apache.ant.antunit">
<property name="working.dir" value="working"/>
<property name="existing.dir" value="working/exists"/>
<property name="nonexistent.dir" value="working/nonexists"/>
<target name="all">
<au:antunit>
<fileset file="${ant.file}"/>
<au:plainlistener/>
</au:antunit>
</target>
<target name="init">
<delete dir="${working.dir}"/>
<mkdir dir="${working.dir}"/>
<mkdir dir="${existing.dir}"/>
</target>
<target name="tearDown">
<delete dir="${working.dir}"/>
</target>
<!--test that you can delete a fileset with a nonexistent dir without failure-->
<target name="testdelfileset" depends="init">
<delete quiet="true" includeEmptyDirs="true">
<fileset dir="${nonexistent.dir}"/>
</delete>
<au:assertFileExists file="${existing.dir}" />
<delete quiet="true" includeEmptyDirs="true">
<fileset dir="${existing.dir}"/>
</delete>
<au:assertFileDoesntExist file="${existing.dir}" />
<mkdir dir="${existing.dir}"/>
<delete quiet="true" includeEmptyDirs="true">
<fileset dir="${nonexistent.dir}"/>
<fileset dir="${existing.dir}"/>
</delete>
<au:assertFileDoesntExist file="${existing.dir}" />
<!--
<available file="dir_exists" type="dir" property="delete.dir.failed"/>
<fail message="Failed to delete directory (2)" if="delete.dir.failed"/>
-->
<mkdir dir="${existing.dir}"/>
<delete quiet="true" includeEmptyDirs="true">
<fileset dir="${existing.dir}"/>
<fileset dir="${nonexistent.dir}"/>
</delete>
<au:assertFileDoesntExist file="${existing.dir}" />
</target>
</project>

Loading…
Cancel
Save