Browse Source

don't skip the full begin token since it may contain the start of the real begin token. PR 45094.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@699002 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
3d8e3a89d4
3 changed files with 29 additions and 3 deletions
  1. +3
    -0
      WHATSNEW
  2. +7
    -3
      src/main/org/apache/tools/ant/types/FilterSet.java
  3. +19
    -0
      src/tests/antunit/types/filterset-test.xml

+ 3
- 0
WHATSNEW View File

@@ -226,6 +226,9 @@ Fixed bugs:
than numbers, letters, hyphen or underscore properly.
Bugzilla Report 45820.

* <filterset> could miss multi-character begin tokens in some cases.
Bugzilla Report 45094.

Other changes:
--------------



+ 7
- 3
src/main/org/apache/tools/ant/types/FilterSet.java View File

@@ -537,9 +537,13 @@ public class FilterSet extends DataType implements Cloneable {
i = index + beginToken.length() + token.length()
+ endToken.length();
} else {
// just append beginToken and search further
b.append(beginToken);
i = index + beginToken.length();
// just append first character of beginToken
// and search further
// we can't skip the complete beginToken since
// it may contain the start of another
// candidate begin token (Bugzilla 45094)
b.append(beginToken.charAt(0));
i = index + 1;
}
index = line.indexOf(beginToken, i);
}


+ 19
- 0
src/tests/antunit/types/filterset-test.xml View File

@@ -41,4 +41,23 @@
actual="${afterfiltering}"/>
</target>

<!-- https://issues.apache.org/bugzilla/show_bug.cgi?id=45094 -->
<target name="testOverlappingMulticharToken">
<mkdir dir="${output}"/>
<copy todir="${output}">
<string value="@@USER@@@@@HOST@@" />
<mergemapper to="filterset-output.txt" />
<filterset begintoken="@@" endtoken="@@">
<filter token="USER" value="user" />
<filter token="HOST" value="host" />
</filterset>
</copy>

<loadfile property="afterfiltering" srcFile="${output}/filterset-output.txt"/>

<au:assertEquals
expected="user@host"
actual="${afterfiltering}"/>
</target>

</project>

Loading…
Cancel
Save