From 2896acf5056b7eadf55842a3dca5311b56c4748e Mon Sep 17 00:00:00 2001 From: kkolinko Date: Thu, 25 Feb 2010 02:58:25 +0000 Subject: [PATCH] fix for #mergeIntoWebXml() Note that the "inserted" flag was never set to true in the old code. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@916097 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/jasper/JspC.java | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/java/org/apache/jasper/JspC.java b/java/org/apache/jasper/JspC.java index 840ceef00..37a869518 100644 --- a/java/org/apache/jasper/JspC.java +++ b/java/org/apache/jasper/JspC.java @@ -882,9 +882,9 @@ public class JspC implements Options { boolean inserted = false; int current = reader.read(); while (current > -1) { - if (!inserted && current == '<') { + if (current == '<') { String element = getElement(reader); - if (insertBefore.contains(element)) { + if (!inserted && insertBefore.contains(element)) { // Insert generated content here writer.println(insertStartMarker); while (true) { @@ -898,11 +898,26 @@ public class JspC implements Options { writer.println(insertEndMarker); writer.println(); writer.write(element); - } else if (element.contains(insertStartMarker)) { + inserted = true; + } else if (element.equals(insertStartMarker)) { // Skip the previous auto-generated content - while (!element.contains(insertEndMarker)) { - element = getElement(reader); + while (true) { + current = reader.read(); + if (current < 0) { + throw new EOFException(); + } + if (current == '<') { + element = getElement(reader); + if (element.equals(insertEndMarker)) { + break; + } + } } + current = reader.read(); + while (current == '\n' || current == '\r') { + current = reader.read(); + } + continue; } else { writer.write(element); } -- 2.11.0