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


Reply via email to