diff --git a/src/main/org/apache/tools/ant/AntClassLoader.java b/src/main/org/apache/tools/ant/AntClassLoader.java
index 5eec9fa6c..b54e166ab 100644
--- a/src/main/org/apache/tools/ant/AntClassLoader.java
+++ b/src/main/org/apache/tools/ant/AntClassLoader.java
@@ -152,14 +152,18 @@ public class AntClassLoader extends ClassLoader {
URL url = null;
while ((this.pathElementsIndex < this.pathElements.length) &&
(url == null)) {
- File pathComponent = AntClassLoader.this.project.resolveFile(
- (String)this.pathElements[this.pathElementsIndex]);
- url = getResourceURL(pathComponent, this.resourceName);
- this.pathElementsIndex++;
+ try {
+ File pathComponent = AntClassLoader.this.project.resolveFile(
+ (String)this.pathElements[this.pathElementsIndex]);
+ url = getResourceURL(pathComponent, this.resourceName);
+ this.pathElementsIndex++;
+ }
+ catch (BuildException e) {
+ // ignore path elements which are not valid relative to the project
+ }
}
this.nextResource = url;
}
-
}
/**
@@ -386,8 +390,13 @@ public class AntClassLoader extends ClassLoader {
String[] pathElements = classpath.list();
for (int i = 0; i < pathElements.length && stream == null; ++i) {
- File pathComponent = project.resolveFile((String)pathElements[i]);
- stream = getResourceStream(pathComponent, name);
+ try {
+ File pathComponent = project.resolveFile((String)pathElements[i]);
+ stream = getResourceStream(pathComponent, name);
+ }
+ catch {BuildException e) {
+ // ignore path elements which are invalid relative to the project
+ }
}
return stream;
diff --git a/src/main/org/apache/tools/ant/Project.java b/src/main/org/apache/tools/ant/Project.java
index d2ef9d989..08bbe5259 100644
--- a/src/main/org/apache/tools/ant/Project.java
+++ b/src/main/org/apache/tools/ant/Project.java
@@ -598,7 +598,7 @@ public class Project {
if (part.equals("..")) {
String parentFile = file.getParent();
if (parentFile == null) {
- throw new BuildException("The file or path you specified (" + fileName + ") is invalid releative to " + rootDir.getAbsolutePath());
+ throw new BuildException("The file or path you specified (" + fileName + ") is invalid relative to " + rootDir.getAbsolutePath());
}
file = new File(parentFile);
} else if (part.equals(".")) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/GZip.java b/src/main/org/apache/tools/ant/taskdefs/GZip.java
index bc0658978..d70dfcc4c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/GZip.java
+++ b/src/main/org/apache/tools/ant/taskdefs/GZip.java
@@ -72,12 +72,12 @@ public class GZip extends Task {
private File zipFile;
private File source;
- public void setZipfile(String zipFilename) {
- zipFile = project.resolveFile(zipFilename);
+ public void setZipfile(File zipFilename) {
+ zipFile = zipFilename;
}
- public void setSrc(String src) {
- source = project.resolveFile(src);
+ public void setSrc(File src) {
+ source = src;
}
public void execute() throws BuildException {
diff --git a/src/main/org/apache/tools/ant/taskdefs/KeySubst.java b/src/main/org/apache/tools/ant/taskdefs/KeySubst.java
index 5d3486bb4..39733aea1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/KeySubst.java
+++ b/src/main/org/apache/tools/ant/taskdefs/KeySubst.java
@@ -115,15 +115,15 @@ public class KeySubst extends Task {
/**
Set the source file.
*/
- public void setSrc(String s) {
- this.source=project.resolveFile(s);
+ public void setSrc(File s) {
+ this.source = s;
}
/**
Set the destination file.
*/
- public void setDest(String dest) {
- this.dest = project.resolveFile(dest);
+ public void setDest(File dest) {
+ this.dest = dest;
}
/**
diff --git a/src/main/org/apache/tools/ant/taskdefs/Rename.java b/src/main/org/apache/tools/ant/taskdefs/Rename.java
index db1fa03d9..82eff388b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Rename.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Rename.java
@@ -77,16 +77,16 @@ public class Rename extends Task {
* Sets the file to be renamed.
* @param src the file to rename
*/
- public void setSrc(String src) {
- this.src = project.resolveFile(src);
+ public void setSrc(File src) {
+ this.src = src;
}
/**
* Sets the new name of the file.
* @param dest the new name of the file.
*/
- public void setDest(String dest) {
- this.dest = project.resolveFile(dest);
+ public void setDest(File dest) {
+ this.dest = dest;
}
/**
diff --git a/src/main/org/apache/tools/ant/taskdefs/Replace.java b/src/main/org/apache/tools/ant/taskdefs/Replace.java
index 5a32648bf..ff0cd0f29 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Replace.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Replace.java
@@ -411,8 +411,8 @@ public class Replace extends MatchingTask {
/**
* Sets a file to be searched for property values.
*/
- public void setPropertyFile(String filename) {
- propertyFile = project.resolveFile(filename);
+ public void setPropertyFile(File filename) {
+ propertyFile = filename;
}
/**
diff --git a/src/main/org/apache/tools/ant/taskdefs/Untar.java b/src/main/org/apache/tools/ant/taskdefs/Untar.java
index 0dcf65451..59beecad4 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Untar.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Untar.java
@@ -66,8 +66,8 @@ import java.io.*;
* @author Stefan Bodewig
*/
public class Untar extends Task {
- private String dest; // req
- private String source; // req
+ private File dest; // req
+ private File source; // req
/**
* Do the work.
@@ -81,7 +81,7 @@ public class Untar extends Task {
touch.setTaskName(getTaskName());
touch.setLocation(getLocation());
- File srcF=project.resolveFile(source);
+ File srcF = source;
TarInputStream tis = null;
try {
@@ -96,7 +96,7 @@ public class Untar extends Task {
if (dest == null) {
throw new BuildException("No destination specified", location);
}
- File dir=project.resolveFile(dest);
+ File dir = dest;
log("Expanding: " + srcF + " into " + dir, Project.MSG_INFO);
tis = new TarInputStream(new FileInputStream(srcF));
@@ -154,8 +154,8 @@ public class Untar extends Task {
*
* @param d Path to the directory.
*/
- public void setDest(String d) {
- this.dest=d;
+ public void setDest(File d) {
+ this.dest = d;
}
/**
@@ -163,7 +163,7 @@ public class Untar extends Task {
*
* @param s Path to tar-file.
*/
- public void setSrc(String s) {
+ public void setSrc(File s) {
this.source = s;
}
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java b/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java
index 3813295a0..ac84408ee 100755
--- a/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java
@@ -433,35 +433,5 @@ public class Javah extends Task {
log(prefix.toString() + niceClassList.toString(), Project.MSG_VERBOSE);
}
-
- ///**
- // * Emulation of extdirs feature in java >= 1.2.
- // * This method adds all files in the given
- // * directories (but not in sub-directories!) to the classpath,
- // * so that you don't have to specify them all one by one.
- // * @param classpath - Path to append files to
- // */
- //protected void addExtdirsToClasspath(Path classpath) {
- // if (extdirs == null) {
- // String extProp = System.getProperty("java.ext.dirs");
- // if (extProp != null) {
- // extdirs = new Path(project, extProp);
- // } else {
- // return;
- // }
- // }
- //
- // String[] dirs = extdirs.list();
- // for (int i=0; i