diff --git a/src/main/org/apache/tools/ant/taskdefs/DependSet.java b/src/main/org/apache/tools/ant/taskdefs/DependSet.java
index aa4446ccd..50f52f97a 100644
--- a/src/main/org/apache/tools/ant/taskdefs/DependSet.java
+++ b/src/main/org/apache/tools/ant/taskdefs/DependSet.java
@@ -18,7 +18,9 @@
package org.apache.tools.ant.taskdefs;
+import java.io.File;
import java.util.Iterator;
+import java.util.Vector;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.Path;
@@ -30,6 +32,7 @@ import org.apache.tools.ant.types.ResourceCollection;
import org.apache.tools.ant.types.resources.Sort;
import org.apache.tools.ant.types.resources.Union;
import org.apache.tools.ant.types.resources.Restrict;
+import org.apache.tools.ant.types.resources.Resources;
import org.apache.tools.ant.types.resources.FileResource;
import org.apache.tools.ant.types.resources.selectors.Not;
import org.apache.tools.ant.types.resources.selectors.Exists;
@@ -108,6 +111,27 @@ public class DependSet extends MatchingTask {
super(rc, DATE_DESC);
}
}
+ private static class HideMissingBasedir implements ResourceCollection {
+ private FileSet fs;
+
+ private HideMissingBasedir(FileSet fs) {
+ this.fs = fs;
+ }
+ public Iterator iterator() {
+ return basedirExists() ? fs.iterator() : Resources.EMPTY_ITERATOR;
+ }
+ public int size() {
+ return basedirExists() ? fs.size() : 0;
+ }
+ public boolean isFilesystemOnly() {
+ return true;
+ }
+ private boolean basedirExists() {
+ File basedir = fs.getDir();
+ //trick to evoke "basedir not set" if null:
+ return basedir == null || basedir.exists();
+ }
+ }
private Union sources = null;
private Path targets = null;
@@ -151,7 +175,7 @@ public class DependSet extends MatchingTask {
* @param fs the FileSet to add.
*/
public void addTargetfileset(FileSet fs) {
- createTargets().add(fs);
+ createTargets().add(new HideMissingBasedir(fs));
}
/**
diff --git a/src/tests/antunit/taskdefs/dependset/test.xml b/src/tests/antunit/taskdefs/dependset/test.xml
index 339bb83ac..55d772bcb 100644
--- a/src/tests/antunit/taskdefs/dependset/test.xml
+++ b/src/tests/antunit/taskdefs/dependset/test.xml
@@ -93,8 +93,20 @@
+
+
+
+
+
+
+
+
+
+
+
+