Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48019
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 21 Oct 2009 20:43:21 +0000 (20:43 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 21 Oct 2009 20:43:21 +0000 (20:43 +0000)
Be more careful to skip over all of nodes we aren't interested it

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@828201 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/jasper/compiler/Parser.java

index 10945cf..b4d9029 100644 (file)
@@ -1780,11 +1780,21 @@ class Parser implements TagConstants {
         while (reader.hasMoreInput()) {
             start = reader.mark();
             if (reader.matches("%--")) {
-                parseComment(parent);
+                // Comment
+                reader.skipUntil("--%>");
             } else if (reader.matches("%@")) {
                 parseDirective(parent);
             } else if (reader.matches("jsp:directive.")) {
                 parseXMLDirective(parent);
+            } else if (reader.matches("%!")) {
+                // Declaration
+                reader.skipUntil("%>");
+            } else if (reader.matches("%=")) {
+                // Expression
+                reader.skipUntil("%>");
+            } else if (reader.matches("%")) {
+                // Scriptlet
+                reader.skipUntil("%>");
             }
             reader.skipUntil("<");
         }