Author: jdonnerstag Date: Fri Dec 3 18:45:58 2010 New Revision: 1041947 URL: http://svn.apache.org/viewvc?rev=1041947&view=rev Log: fixed WICKET-3222 AbstractMarkupParser doesn't remove Comments correctly Issue: WICKET-3222
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java?rev=1041947&r1=1041946&r2=1041947&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java Fri Dec 3 18:45:58 2010 @@ -30,7 +30,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; @@ -404,9 +403,9 @@ public abstract class AbstractMarkupPars 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); @@ -424,8 +423,12 @@ public abstract class AbstractMarkupPars } rawMarkup = buf.toString(); } + else + { + pos1 = pos2; + } } - pos1 = rawMarkup.length() <= pos1 + 2 ? -1 : rawMarkup.indexOf("<!--", pos1 + 4); + pos1 = rawMarkup.indexOf("<!--", pos1); } return rawMarkup; } Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java?rev=1041947&r1=1041946&r2=1041947&view=diff ============================================================================== --- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java (original) +++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java Fri Dec 3 18:45:58 2010 @@ -182,7 +182,8 @@ public final class MarkupParserTest exte final String extension) { final String path = cls.getName().replace('.', '/'); - final IResourceStream resource = locator.locate(cls, path, style, variation, locale, extension, false); + final IResourceStream resource = locator.locate(cls, path, style, variation, locale, + extension, false); return new MarkupResourceStream(resource, null, null); } @@ -388,7 +389,8 @@ public final class MarkupParserTest exte assertEquals("html", ((ComponentTag)markup.get(0)).getName()); assertEquals("html", ((ComponentTag)markup.get(2)).getName()); assertEquals(true, markup.get(1) instanceof RawMarkup); - assertEquals("<script language=\"JavaScript\">... <x a> ...</script>", markup.get(1).toString()); + assertEquals("<script language=\"JavaScript\">... <x a> ...</script>", markup.get(1) + .toString()); } /** @@ -413,4 +415,20 @@ public final class MarkupParserTest exte t = (ComponentTag)markup.get(2); assertEquals(t.getId(), "span2"); } + + /** + * + * @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>"); + IMarkupFragment markup = parser.parse(); + + RawMarkup raw = (RawMarkup)markup.get(0); + assertEquals("<span> </span>", raw.toString()); + } }