Hi,

I want to change the behavior of the UpToDate task when it's called on a inexisting fileset. Now, it throws a exception like that one :

file:/home/gce/dev/bilansService/build/build.xml:419:
/home/gce/dev/bilansService/work/src not found.
at
org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:341)
at
org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:332)
at org.apache.tools.ant.taskdefs.UpToDate.eval(UpToDate.java:199)
at org.apache.tools.ant.taskdefs.UpToDate.execute(UpToDate.java:235)
at org.apache.tools.ant.Task.perform(Task.java:317)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:334)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at org.apache.tools.ant.Project.executeTargets(Project.java:1250)
at org.apache.tools.ant.Main.runBuild(Main.java:610)
at org.apache.tools.ant.Main.start(Main.java:196)
at org.apache.tools.ant.Main.main(Main.java:235)


I would like the uptodate tasks to simply ignore inexisting directory and consider that the file can not uptodate.

Please see bug 11214 for more details :

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11214

Thanks

--
Guillaume Cot�
[EMAIL PROTECTED]
--- AbstractFileSet.java.orig   Mon Jul 29 10:44:25 2002
+++ AbstractFileSet.java        Fri Jul 26 19:09:42 2002
@@ -316,6 +316,14 @@
         return classname.substring(dotIndex + 1);
     }
 
+    public boolean exist(Project p) {
+        if (isReference()) {
+            return getRef(p).exist(p);
+        }
+
+        return dir.exists();
+    }
+
     /**
      * Returns the directory scanner needed to access the files to process.
      */
--- UpToDate.java.orig  Mon Jul 29 10:43:03 2002
+++ UpToDate.java       Fri Jul 26 19:32:51 2002
@@ -196,9 +196,14 @@
         boolean upToDate = true;
         while (upToDate && enum.hasMoreElements()) {
             FileSet fs = (FileSet) enum.nextElement();
-            DirectoryScanner ds = fs.getDirectoryScanner(project);
-            upToDate = upToDate && scanDir(fs.getDir(project), 
-                                           ds.getIncludedFiles());
+            if (fs.exist(project)) {
+                DirectoryScanner ds = fs.getDirectoryScanner(project);
+                upToDate = upToDate && scanDir(fs.getDir(project), 
+                                               ds.getIncludedFiles());
+            }
+            else {
+                upToDate = false;
+            }
         }
 
         if (_sourceFile != null) {

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

Reply via email to