Author: jdonnerstag Date: Wed Dec 22 10:50:12 2010 New Revision: 1051823 URL: http://svn.apache.org/viewvc?rev=1051823&view=rev Log: fixed CLONE -AbstractMarkupParser doesn't remove Comments correctly. Issue: WICKET-3277
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java?rev=1051823&r1=1051822&r2=1051823&view=diff ============================================================================== --- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java (original) +++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java Wed Dec 22 10:50:12 2010 @@ -41,7 +41,6 @@ import org.apache.wicket.markup.parser.f import org.apache.wicket.settings.IMarkupSettings; import org.apache.wicket.util.resource.ResourceStreamNotFoundException; import org.apache.wicket.util.resource.StringResourceStream; -import org.apache.wicket.util.string.AppendingStringBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -490,9 +489,9 @@ public class MarkupParser int pos1 = rawMarkup.indexOf("<!--"); while (pos1 != -1) { - final int pos2 = rawMarkup.indexOf("-->", pos1 + 4); + int pos2 = rawMarkup.indexOf("-->", pos1 + 4); - final AppendingStringBuffer buf = new AppendingStringBuffer(rawMarkup.length()); + final StringBuilder buf = new StringBuilder(rawMarkup.length()); if (pos2 != -1) { final String comment = rawMarkup.substring(pos1 + 4, pos2); @@ -510,8 +509,12 @@ public class MarkupParser } rawMarkup = buf.toString(); } + else + { + pos1 = pos2; + } } - pos1 = rawMarkup.length() <= pos1 + 2 ? -1 : rawMarkup.indexOf("<!--", pos1 + 4); + pos1 = rawMarkup.indexOf("<!--", pos1); } return rawMarkup; } Modified: wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java?rev=1051823&r1=1051822&r2=1051823&view=diff ============================================================================== --- wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java (original) +++ wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java Wed Dec 22 10:50:12 2010 @@ -411,4 +411,20 @@ public final class MarkupParserTest exte assertEquals(t.getId(), "span2"); assertEquals(t.getPath(), "span"); } + + /** + * + * @throws IOException + * @throws ResourceStreamNotFoundException + */ + public final void testComments() throws IOException, ResourceStreamNotFoundException + { + tester.getApplication().getMarkupSettings().setStripComments(true); + final MarkupParser parser = new MarkupParser( + "<span><!-- c1 --> <!-- c2 --><!-- c3 --></span>"); + Markup markup = parser.parse(); + + RawMarkup raw = (RawMarkup)markup.get(0); + assertEquals("<span> </span>", raw.toString()); + } }