Author: bodewig
Date: Mon Aug 18 07:48:51 2008
New Revision: 686775

URL: http://svn.apache.org/viewvc?rev=686775&view=rev
Log:
sometimes an infinite recursion of filters is flagged when there is none.  PR 
44226.  Submitted by Adam Bryzak.

Modified:
    ant/core/trunk/CONTRIBUTORS
    ant/core/trunk/WHATSNEW
    ant/core/trunk/contributors.xml
    ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSet.java
    ant/core/trunk/src/tests/antunit/types/filterset-test.xml

Modified: ant/core/trunk/CONTRIBUTORS
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/CONTRIBUTORS?rev=686775&r1=686774&r2=686775&view=diff
==============================================================================
Binary files - no diff available.

Modified: ant/core/trunk/WHATSNEW
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=686775&r1=686774&r2=686775&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Mon Aug 18 07:48:51 2008
@@ -154,6 +154,10 @@
    was not set.
    Bugzilla Report 45245.
 
+ * <filterset> sometimes incorrectly flagged infinite recursions of
+   filter tokens
+   Bugzilla Report 44226.
+
 Other changes:
 --------------
 

Modified: ant/core/trunk/contributors.xml
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/contributors.xml?rev=686775&r1=686774&r2=686775&view=diff
==============================================================================
--- ant/core/trunk/contributors.xml (original)
+++ ant/core/trunk/contributors.xml Mon Aug 18 07:48:51 2008
@@ -35,6 +35,10 @@
     <last>Blinkinsop</last>
   </name>
   <name>
+    <first>Adam</first>
+    <last>Bryzak</last>
+  </name>
+  <name>
     <first>Aleksandr</first>
     <last>Ishutin</last>
   </name>

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSet.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSet.java?rev=686775&r1=686774&r2=686775&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSet.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSet.java Mon Aug 
18 07:48:51 2008
@@ -593,6 +593,9 @@
                     duplicateToken = false;
                 }
             }
+        } else if (passedTokens.size() > 0) {
+            // remove last seen token when crawling out of recursion 
+            passedTokens.remove(passedTokens.size() - 1);
         }
         recurseDepth--;
         return value;

Modified: ant/core/trunk/src/tests/antunit/types/filterset-test.xml
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/types/filterset-test.xml?rev=686775&r1=686774&r2=686775&view=diff
==============================================================================
--- ant/core/trunk/src/tests/antunit/types/filterset-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/types/filterset-test.xml Mon Aug 18 
07:48:51 2008
@@ -15,27 +15,29 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<project xmlns:au="antlib:org.apache.ant.antunit">
+<project xmlns:au="antlib:org.apache.ant.antunit" default="antunit">
+
+  <import file="../antunit-base.xml" />
 
   <property name="br" value="${line.separator}" />
 
   <target name="testRecursionRegression">
     <copy todir="${basedir}">
-      <string value="@[EMAIL PROTECTED]@[EMAIL PROTECTED]@[EMAIL PROTECTED]" />
+      <string value="@[EMAIL PROTECTED]@[EMAIL PROTECTED]@[EMAIL 
PROTECTED]@[EMAIL PROTECTED]" />
       <mergemapper to="filterset-output.txt" />
       <filterset>
         <filter token="a" value="aaa" />
         <filter token="b" value="bbb" />
         <filter token="c" value="@a@:@b@" />
+        <filter token="d" value="@c@:@c@" />
       </filterset>
     </copy>
 
-    <au:assertTrue>
-      <resourcesmatch astext="true">
-        <file file="filterset-output.txt" />
-        <string value="aaa${br}bbb${br}aaa:bbb${br}" />
-      </resourcesmatch>
-    </au:assertTrue>
+    <loadfile property="afterfiltering" srcFile="filterset-output.txt"/>
+
+    <au:assertEquals
+       expected="aaa${br}bbb${br}aaa:bbb${br}aaa:bbb:aaa:bbb${br}"
+       actual="${afterfiltering}"/>
   </target>
 
   <target name="tearDown">


Reply via email to