From e2688b6318d9edc523781640a683140ae80aafa3 Mon Sep 17 00:00:00 2001 From: Peter Reilly Date: Wed, 7 Jan 2004 10:10:36 +0000 Subject: [PATCH] Fix for error in inifinite loop checking in filtersets PR: 23154 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@275861 13f79535-47bb-0310-9956-ffa450edef68 --- src/etc/testcases/taskdefs/copy.xml | 22 +++++++++++++++++++ .../org/apache/tools/ant/types/FilterSet.java | 8 ++++--- .../apache/tools/ant/taskdefs/CopyTest.java | 7 +++++- 3 files changed, 33 insertions(+), 4 deletions(-) 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();