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