diff --git a/src/main/org/apache/tools/ant/taskdefs/Copydir.java b/src/main/org/apache/tools/ant/taskdefs/Copydir.java index 6d6292d3b..44eecf216 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Copydir.java +++ b/src/main/org/apache/tools/ant/taskdefs/Copydir.java @@ -74,12 +74,12 @@ public class Copydir extends MatchingTask { private boolean forceOverwrite = false; private Hashtable filecopyList = new Hashtable(); - public void setSrc(String src) { - srcDir = project.resolveFile(src); + public void setSrc(File src) { + srcDir = src; } - public void setDest(String dest) { - destDir = project.resolveFile(dest); + public void setDest(File dest) { + destDir = dest; } public void setFiltering(String filter) { @@ -105,6 +105,10 @@ public class Copydir extends MatchingTask { +" does not exist!", location); } + if (destDir == null) { + throw new BuildException("The dest attribute must be set.", location); + } + DirectoryScanner ds = super.getDirectoryScanner(srcDir); String[] files = ds.getIncludedFiles(); diff --git a/src/main/org/apache/tools/ant/taskdefs/Copyfile.java b/src/main/org/apache/tools/ant/taskdefs/Copyfile.java index 0470d02d9..19e68e6db 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Copyfile.java +++ b/src/main/org/apache/tools/ant/taskdefs/Copyfile.java @@ -72,16 +72,16 @@ public class Copyfile extends Task { private boolean filtering = false; private boolean forceOverwrite = false; - public void setSrc(String src) { - srcFile = project.resolveFile(src); + public void setSrc(File src) { + srcFile = src; } public void setForceoverwrite(String force) { forceOverwrite = Project.toBoolean(force); } - public void setDest(String dest) { - destFile = project.resolveFile(dest); + public void setDest(File dest) { + destFile = dest; } public void setFiltering(String filter) { @@ -89,6 +89,19 @@ public class Copyfile extends Task { } public void execute() throws BuildException { + if (srcFile == null) { + throw new BuildException("The src attribute must be present.", location); + } + + if (!srcFile.exists()) { + throw new BuildException("src " + srcFile.toString() + + " does not exist.", location); + } + + if (destFile == null) { + throw new BuildException("The dest attribute must be present.", location); + } + if (forceOverwrite || srcFile.lastModified() > destFile.lastModified()) { try { project.copyFile(srcFile, destFile, filtering, forceOverwrite);