From 76aa47231164bc646c4707f260b1f658b12e2665 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Wed, 3 Jun 2009 13:02:37 +0000 Subject: [PATCH] replacetokens failed if stream ends in begintoken. PR 47306. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@781357 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 4 ++++ .../tools/ant/filters/ReplaceTokens.java | 6 +++++- .../antunit/filters/replacetokens-test.xml | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/WHATSNEW b/WHATSNEW index e8f4ba6dd..2744eb3f3 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -371,6 +371,10 @@ Fixed bugs: errors. Bugzilla Report 46829. + * The filter threw an exception if the stream to + filter ended with a begin token. + Bugzilla Report 47306. + Other changes: -------------- * A HostInfo task was added performing information on hosts, including info on diff --git a/src/main/org/apache/tools/ant/filters/ReplaceTokens.java b/src/main/org/apache/tools/ant/filters/ReplaceTokens.java index dedcc21e2..b11edeb9c 100644 --- a/src/main/org/apache/tools/ant/filters/ReplaceTokens.java +++ b/src/main/org/apache/tools/ant/filters/ReplaceTokens.java @@ -153,7 +153,11 @@ public final class ReplaceTokens queuedData = key.toString() + queuedData.substring(queueIndex); } - queueIndex = 0; + if (queuedData.length() > 0) { + queueIndex = 0; + } else { + queueIndex = -1; + } return beginToken; } else { key.setLength(key.length() - 1); diff --git a/src/tests/antunit/filters/replacetokens-test.xml b/src/tests/antunit/filters/replacetokens-test.xml index 54e1186ee..fda36a314 100644 --- a/src/tests/antunit/filters/replacetokens-test.xml +++ b/src/tests/antunit/filters/replacetokens-test.xml @@ -47,4 +47,22 @@ world=Ant resource="${output}/text.txt" value="Hello, Ant!"/> + + + Hello@ + + + + + + + + + + +