diff --git a/src/main/org/apache/tools/ant/taskdefs/Checksum.java b/src/main/org/apache/tools/ant/taskdefs/Checksum.java index d8fa4092a..7068ae52c 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Checksum.java +++ b/src/main/org/apache/tools/ant/taskdefs/Checksum.java @@ -72,7 +72,6 @@ import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.condition.Condition; import org.apache.tools.ant.taskdefs.MatchingTask; import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.types.SrcFile; /** * This task can be used to create checksums for files. @@ -130,8 +129,8 @@ public class Checksum extends MatchingTask implements Condition { /** * Sets the file for which the checksum is to be calculated. */ - public void setFile(SrcFile file) { - this.file = file.getFile(); + public void setFile(File file) { + this.file = file; } /** @@ -220,6 +219,11 @@ public class Checksum extends MatchingTask implements Condition { "Specify at least one source - a file or a fileset."); } + if (file != null && file.exists() && file.isDirectory()) { + throw new BuildException( + "Checksum cannot be generated for directories"); + } + if (property != null && fileext != null) { throw new BuildException( "Property and FileExt cannot co-exist."); diff --git a/src/main/org/apache/tools/ant/taskdefs/Expand.java b/src/main/org/apache/tools/ant/taskdefs/Expand.java index c00c60be4..8b02e4e07 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Expand.java +++ b/src/main/org/apache/tools/ant/taskdefs/Expand.java @@ -57,10 +57,8 @@ package org.apache.tools.ant.taskdefs; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; -import org.apache.tools.ant.types.DestDir; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.PatternSet; -import org.apache.tools.ant.types.SrcFile; import org.apache.tools.ant.util.FileUtils; import java.io.File; import java.io.FileInputStream; @@ -106,10 +104,19 @@ public class Expand extends MatchingTask { "Dest attribute must be specified"); } + if (dest.exists() && !dest.isDirectory()) { + throw new BuildException("Dest must be a directory.", location); + } + FileUtils fileUtils = FileUtils.newFileUtils(); if (source != null) { - expandFile(fileUtils, source, dest); + if (source.isDirectory()) { + throw new BuildException("Src must not be a directory." + + " Use nested filesets instead.", location); + } else { + expandFile(fileUtils, source, dest); + } } if (filesets.size() > 0) { for (int j=0; j < filesets.size(); j++) { @@ -246,49 +253,18 @@ public class Expand extends MatchingTask { * destination directory. * * @param d Path to the directory. - * @deprecated setDest(File) is deprecated and is replaced with - * setDest(DestDir) to let Ant's core perform validation */ public void setDest(File d) { - log("DEPRECATED - The setDest(File) method has been deprecated." - + " Use setDest(DestDir) instead."); - DestDir dd = new DestDir(); - dd.setFile(d); - setDest(dd); - } - - /** - * Set the destination directory. File will be unzipped into the - * destination directory. - * - * @param d Path to the directory. - */ - public void setDest(DestDir d) { - this.dest=d.getFile(); + this.dest=d; } /** * Set the path to zip-file. * * @param s Path to zip-file. - * @deprecated setSrc(File) is deprecated and is replaced with - * setSrc(SrcFile) to let Ant's core perform validation */ public void setSrc(File s) { - log("DEPRECATED - The setSrc(File) method has been deprecated." - + " Use setSrc(SrcFile) instead."); - SrcFile sf = new SrcFile(); - sf.setFile(s); - setSrc(sf); - } - - /** - * Set the path to zip-file. - * - * @param s Path to zip-file. - */ - public void setSrc(SrcFile s) { - this.source = s.getFile(); + this.source = s; } /** diff --git a/src/main/org/apache/tools/ant/taskdefs/LoadFile.java b/src/main/org/apache/tools/ant/taskdefs/LoadFile.java index a4e0ffc18..1b458491d 100644 --- a/src/main/org/apache/tools/ant/taskdefs/LoadFile.java +++ b/src/main/org/apache/tools/ant/taskdefs/LoadFile.java @@ -58,7 +58,7 @@ import org.apache.tools.ant.Project; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.ProjectHelper; import org.apache.tools.ant.types.EnumeratedAttribute; -import org.apache.tools.ant.types.SrcFile; + import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; @@ -67,7 +67,7 @@ import java.io.BufferedInputStream; /** * Load a file into a property - * @since 1.5 + * * @author Steve Loughran * @created 10 December 2001 */ @@ -126,8 +126,8 @@ public class LoadFile extends Task { * * @param srcFile The new SrcFile value */ - public void setSrcFile(SrcFile srcFile) { - this.srcFile = srcFile.getFile(); + public void setSrcFile(File srcFile) { + this.srcFile = srcFile; } @@ -182,7 +182,7 @@ public class LoadFile extends Task { project.setNewProperty(property, text); log("loaded "+buffer.length+" characters",Project.MSG_VERBOSE); log(property+" := "+text,Project.MSG_DEBUG); - + } catch (IOException ioe) { String message = "Unable to load file: " + ioe.toString(); if (failOnError) { @@ -203,4 +203,3 @@ public class LoadFile extends Task { //end class } - diff --git a/src/main/org/apache/tools/ant/taskdefs/Mkdir.java b/src/main/org/apache/tools/ant/taskdefs/Mkdir.java index e78f628b7..53c90a9f7 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Mkdir.java +++ b/src/main/org/apache/tools/ant/taskdefs/Mkdir.java @@ -54,11 +54,9 @@ package org.apache.tools.ant.taskdefs; -import java.io.File; -import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; -import org.apache.tools.ant.types.DestDir; - +import org.apache.tools.ant.BuildException; +import java.io.File; /** * Creates a given directory. @@ -75,6 +73,10 @@ public class Mkdir extends Task { throw new BuildException("dir attribute is required", location); } + if (dir.isFile()) { + throw new BuildException("Unable to create directory as a file already exists with that name: " + dir.getAbsolutePath()); + } + if (!dir.exists()) { boolean result = dir.mkdirs(); if (result == false) { @@ -86,19 +88,8 @@ public class Mkdir extends Task { } } - /** - * @deprecated setDir(File) is deprecated and is replaced with - * setDir(DestDir) to let Ant's core perform validation - */ public void setDir(File dir) { - log("DEPRECATED - The setDir(File) method has been deprecated." - + " Use setDir(DestDir) instead."); - DestDir destDir = new DestDir(); - destDir.setFile(dir); - setDir(destDir); - } - - public void setDir(DestDir destDir) { - this.dir = destDir.getFile(); + this.dir = dir; } } + diff --git a/src/main/org/apache/tools/ant/taskdefs/Property.java b/src/main/org/apache/tools/ant/taskdefs/Property.java index cf51ce7f3..c3ecb71c4 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Property.java +++ b/src/main/org/apache/tools/ant/taskdefs/Property.java @@ -59,7 +59,6 @@ import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.ProjectHelper; -import org.apache.tools.ant.types.DestFile; import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Reference; import java.io.File; @@ -118,20 +117,8 @@ public class Property extends Task { return value; } - /** - * @deprecated setFile(File) is deprecated and is replaced with - * setFile(DestFile) to let Ant's core perform validation - */ public void setFile(File file) { - log("DEPRECATED - The setFile(File) method has been deprecated." - + " Use setFile(DestFile) instead."); - DestFile destFile = new DestFile(); - destFile.setFile(file); - setFile(destFile); - } - - public void setFile(DestFile file) { - this.file = file.getFile(); + this.file = file; } public File getFile() { diff --git a/src/main/org/apache/tools/ant/taskdefs/Unpack.java b/src/main/org/apache/tools/ant/taskdefs/Unpack.java index 6c8c65ef0..4dbdeddc8 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Unpack.java +++ b/src/main/org/apache/tools/ant/taskdefs/Unpack.java @@ -58,7 +58,6 @@ package org.apache.tools.ant.taskdefs; import java.io.File; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; -import org.apache.tools.ant.types.SrcFile; /** * Abstract Base class for unpack tasks. @@ -73,16 +72,14 @@ public abstract class Unpack extends Task { /** * @deprecated setSrc(String) is deprecated and is replaced with - * setSrc(SrcFile) to make Ant's Introspection + * setSrc(File) to make Ant's Introspection * mechanism do the work and also to encapsulate operations on * the type in its own class. */ public void setSrc(String src) { log("DEPRECATED - The setSrc(String) method has been deprecated." - + " Use setSrc(SrcFile) instead."); - SrcFile sf = new SrcFile(); - sf.setFile(project.resolveFile(src)); - setSrc(sf); + + " Use setSrc(File) instead."); + setSrc(project.resolveFile(src)); } /** @@ -97,8 +94,8 @@ public abstract class Unpack extends Task { setDest(project.resolveFile(dest)); } - public void setSrc(SrcFile srcFile) { - source = srcFile.getFile(); + public void setSrc(File src) { + source = src; } public void setDest(File dest) { @@ -110,6 +107,14 @@ public abstract class Unpack extends Task { throw new BuildException("No Src specified", location); } + if (!source.exists()) { + throw new BuildException("Src doesn't exist", location); + } + + if (source.isDirectory()) { + throw new BuildException("Cannot expand a directory", location); + } + if (dest == null) { dest = new File(source.getParent()); } diff --git a/src/testcases/org/apache/tools/ant/taskdefs/LoadFileTest.java b/src/testcases/org/apache/tools/ant/taskdefs/LoadFileTest.java index 128738b9f..4bbdcdc4d 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/LoadFileTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/LoadFileTest.java @@ -116,32 +116,25 @@ public class LoadFileTest extends BuildFileTest { public void testNoSourcefilefound() { expectBuildExceptionContaining("testNoSourcefilefound", "File not found", - "does not exist"); + "Unable to load file"); } /** * A unit test for JUnit */ - /* turned off as the move to SrcFile changed where the check - * for existence went. - * we need to think of an alternate way to generate a file which - * cant be opened for reading - */ - /* - public void testFailOnError() + public void testFailOnError() throws BuildException { executeTarget("testFailOnError"); if(project.getProperty("testFailOnError")!=null) { - fail("property should not have been defined"); + fail("property should not have been defined"); } } - */ - + /** * A unit test for JUnit */ - public void testLoadAFile() + public void testLoadAFile() throws BuildException { executeTarget("testLoadAFile"); if(project.getProperty("testLoadAFile").indexOf("eh?")<0) { @@ -153,7 +146,7 @@ public class LoadFileTest extends BuildFileTest { /** * A unit test for JUnit */ - public void testLoadAFileEnc() + public void testLoadAFileEnc() throws BuildException { executeTarget("testLoadAFileEnc"); if(project.getProperty("testLoadAFileEnc")==null) { @@ -164,3 +157,4 @@ public class LoadFileTest extends BuildFileTest { } +