diff --git a/WHATSNEW b/WHATSNEW index 371512219..045628d35 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -42,6 +42,9 @@ Fixed bugs: * would count some internal character replacements when reporting the number of replaced tokens. +* would cause an exception if a pointed to files + that do not exist. + Other changes: -------------- diff --git a/src/etc/testcases/taskdefs/concat.xml b/src/etc/testcases/taskdefs/concat.xml index 8a28ef602..a38ae899b 100644 --- a/src/etc/testcases/taskdefs/concat.xml +++ b/src/etc/testcases/taskdefs/concat.xml @@ -31,4 +31,10 @@ Hello, ${world}! + + + + + + diff --git a/src/main/org/apache/tools/ant/taskdefs/Concat.java b/src/main/org/apache/tools/ant/taskdefs/Concat.java index e56eefe86..fcf90b23d 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Concat.java +++ b/src/main/org/apache/tools/ant/taskdefs/Concat.java @@ -298,9 +298,8 @@ public class Concat extends Task { private void catFiles(File base, String[] files) { // First, create a list of absolute paths for the input files. - final int len = files.length; - String[] input = new String[len]; - for (int i = 0; i < len; i++) { + Vector inputFileNames = new Vector(); + for (int i = 0; i < files.length; i++) { File current = new File(base, files[i]); @@ -314,9 +313,13 @@ public class Concat extends Task { continue; } - input[i] = current.getAbsolutePath(); + inputFileNames.addElement(current.getAbsolutePath()); } + final int len = inputFileNames.size(); + String[] input = new String[len]; + inputFileNames.copyInto(input); + // Next, perform the concatenation. if (encoding == null) { OutputStream os = null; diff --git a/src/testcases/org/apache/tools/ant/taskdefs/ConcatTest.java b/src/testcases/org/apache/tools/ant/taskdefs/ConcatTest.java index c8089de3f..3f107036e 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/ConcatTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/ConcatTest.java @@ -161,4 +161,9 @@ public class ConcatTest expectLog("test5", "Hello, World!"); } + public void test6() { + expectLogContaining("test6", + "src/etc/testcases/taskdefs/thisfiledoesnotexist does not exist."); + } + }