diff --git a/WHATSNEW b/WHATSNEW index ae6d47abb..c8e0d6fcb 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -143,6 +143,10 @@ Fixed bugs: * didn't work for multi-byte encodings if byline was false. Bugzilla Report 19187. +* was altering unnecessarily the timestamp of the directories + containing the files to process + Bugzilla Report 22541. + * file names that include spaces need to be quoted inside the @argfile argument using forked and (all JDKS). Bugzilla Report 10499. NB : a first correction was only introducing quotes for JDK 1.4 diff --git a/src/etc/testcases/taskdefs/optional/replaceregexp.xml b/src/etc/testcases/taskdefs/optional/replaceregexp.xml index cb7130a53..384f328ad 100644 --- a/src/etc/testcases/taskdefs/optional/replaceregexp.xml +++ b/src/etc/testcases/taskdefs/optional/replaceregexp.xml @@ -1,5 +1,5 @@ - + This build file should only be run from within the testcase @@ -18,6 +18,18 @@ + + + + + + + + + + + + @@ -35,6 +47,7 @@ + diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java index bfc248d84..57ae9c480 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java @@ -317,8 +317,7 @@ public class ReplaceRegExp extends Task { /** Perform the replace on the entire file */ protected void doReplace(File f, int options) throws IOException { - File parentDir = fileUtils.getParentFile(f); - File temp = fileUtils.createTempFile("replace", ".txt", parentDir); + File temp = fileUtils.createTempFile("replace", ".txt", null); Reader r = null; FileWriter w = null; diff --git a/src/testcases/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java b/src/testcases/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java index 4c95eb099..5b33a697f 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java @@ -68,13 +68,13 @@ import java.io.IOException; * @version $Revision$ */ public class ReplaceRegExpTest extends BuildFileTest { - + private static final String PROJECT_PATH = "src/etc/testcases/taskdefs/optional"; public ReplaceRegExpTest(String name) { super(name); } public void setUp() { - configureProject("src/etc/testcases/taskdefs/optional/replaceregexp.xml"); + configureProject(PROJECT_PATH + "/replaceregexp.xml"); } public void tearDown() { @@ -85,7 +85,7 @@ public class ReplaceRegExpTest extends BuildFileTest { Properties original = new Properties(); FileInputStream propsFile = null; try { - propsFile = new FileInputStream("src/etc/testcases/taskdefs/optional/replaceregexp.properties"); + propsFile = new FileInputStream(PROJECT_PATH + "/replaceregexp.properties"); original.load(propsFile); } finally { if (propsFile != null) { @@ -100,7 +100,7 @@ public class ReplaceRegExpTest extends BuildFileTest { Properties after = new Properties(); try { - propsFile = new FileInputStream("src/etc/testcases/taskdefs/optional/test.properties"); + propsFile = new FileInputStream(PROJECT_PATH + "/test.properties"); after.load(propsFile); } finally { if (propsFile != null) { @@ -112,21 +112,30 @@ public class ReplaceRegExpTest extends BuildFileTest { assertNull(after.get("OldAbc")); assertEquals("AbcDef", after.get("NewProp")); } - + // inspired by bug 22541 + public void testDirectoryDateDoesNotChange() { + executeTarget("touchDirectory"); + File myFile = new File(PROJECT_PATH + "/" + getProject().getProperty("tmpregexp")); + long timeStampBefore = myFile.lastModified(); + executeTarget("testDirectoryDateDoesNotChange"); + long timeStampAfter = myFile.lastModified(); + assertEquals("directory date should not change", + timeStampBefore, timeStampAfter); + } public void testDontAddNewline1() throws IOException { executeTarget("testDontAddNewline1"); assertTrue("Files match", FileUtils.newFileUtils() - .contentEquals(new File("src/etc/testcases/taskdefs/optional/test.properties"), - new File("src/etc/testcases/taskdefs/optional/replaceregexp2.result.properties"))); + .contentEquals(new File(PROJECT_PATH + "/test.properties"), + new File(PROJECT_PATH + "/replaceregexp2.result.properties"))); } public void testDontAddNewline2() throws IOException { executeTarget("testDontAddNewline2"); assertTrue("Files match", FileUtils.newFileUtils() - .contentEquals(new File("src/etc/testcases/taskdefs/optional/test.properties"), - new File("src/etc/testcases/taskdefs/optional/replaceregexp2.result.properties"))); + .contentEquals(new File(PROJECT_PATH + "/test.properties"), + new File(PROJECT_PATH + "/replaceregexp2.result.properties"))); } }// ReplaceRegExpTest