diff --git a/src/etc/testcases/taskdefs/copy.xml b/src/etc/testcases/taskdefs/copy.xml
index 496f0e8b2..57e9d695d 100644
--- a/src/etc/testcases/taskdefs/copy.xml
+++ b/src/etc/testcases/taskdefs/copy.xml
@@ -10,6 +10,24 @@
+
+
+
+
+
+PRODUCT_VERSION=6.2.1.4
+PRODUCT_BUILD=6.5 (BLD_65036)
+PRODUCT_VERSION=6.2.1.4
+PRODUCT_BUILD=6.5 (BLD_65036)
+
+
+
+
+
+
+
+
+
@@ -89,6 +107,8 @@
+
+
@@ -99,6 +119,8 @@
+
+
diff --git a/src/main/org/apache/tools/ant/types/FilterSet.java b/src/main/org/apache/tools/ant/types/FilterSet.java
index c934c4aab..4e3e60170 100644
--- a/src/main/org/apache/tools/ant/types/FilterSet.java
+++ b/src/main/org/apache/tools/ant/types/FilterSet.java
@@ -1,7 +1,7 @@
/*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2001-2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2001-2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -357,6 +357,8 @@ public class FilterSet extends DataType implements Cloneable {
* @return The string with the tokens replaced.
*/
public String replaceTokens(String line) {
+ passedTokens = null; // reset for new line
+
String beginToken = getBeginToken();
String endToken = getEndToken();
int index = line.indexOf(beginToken);
@@ -415,7 +417,7 @@ public class FilterSet extends DataType implements Cloneable {
* This parses tokens which point to tokens.
* It also maintains a list of currently used tokens, so we cannot
* get into an infinite loop
- * @param value the value / token to parse
+ * @param line the value / token to parse
* @param parent the parant token (= the token it was parsed from)
*/
private String replaceTokens(String line, String parent)
@@ -426,7 +428,7 @@ public class FilterSet extends DataType implements Cloneable {
if (passedTokens.contains(parent) && !duplicateToken) {
duplicateToken = true;
StringBuffer sb = new StringBuffer();
- sb.append("Inifinite loop in tokens. Currently known tokens : ");
+ sb.append("Infinite loop in tokens. Currently known tokens : ");
sb.append(passedTokens);
sb.append("\nProblem token : " + getBeginToken() + parent
+ getEndToken());
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java b/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java
index f47d5e10a..74e9edc9c 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java
@@ -1,7 +1,7 @@
/*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2000-2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2000-2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -126,6 +126,11 @@ public class CopyTest extends BuildFileTest {
}
+ public void testFilterTest() {
+ executeTarget("filtertest");
+ assertTrue(getOutput().indexOf("loop in tokens") == -1);
+ }
+
public void testFilterSet() throws IOException {
executeTarget("testFilterSet");
FileUtils fileUtils = FileUtils.newFileUtils();