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());
+ }
}