From f9bd2f4b4d70fbf3ec808fc166e264a6ebe49ac2 Mon Sep 17 00:00:00 2001 From: markt Date: Thu, 8 May 2008 21:53:35 +0000 Subject: [PATCH] Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=42943 Make sure the nested element is inside a element git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@654640 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/jasper/compiler/JspDocumentParser.java | 24 ++++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/java/org/apache/jasper/compiler/JspDocumentParser.java b/java/org/apache/jasper/compiler/JspDocumentParser.java index a67a3ea96..d5a11bfa3 100644 --- a/java/org/apache/jasper/compiler/JspDocumentParser.java +++ b/java/org/apache/jasper/compiler/JspDocumentParser.java @@ -278,8 +278,11 @@ class JspDocumentParser return; } + String currentPrefix = getPrefix(current.getQName()); + // jsp:text must not have any subelements - if (JSP_URI.equals(uri) && TEXT_ACTION.equals(current.getLocalName())) { + if (JSP_URI.equals(uri) && TEXT_ACTION.equals(current.getLocalName()) + && "jsp".equals(currentPrefix)) { throw new SAXParseException( Localizer.getMessage("jsp.error.text.has_subelement"), locator); @@ -1175,11 +1178,7 @@ class JspDocumentParser } } - String prefix = ""; - int colon = qName.indexOf(':'); - if (colon != -1) { - prefix = qName.substring(0, colon); - } + String prefix = getPrefix(qName); Node.CustomTag ret = null; if (tagInfo != null) { @@ -1366,9 +1365,8 @@ class JspDocumentParser */ private void checkPrefix(String uri, String qName) { - int index = qName.indexOf(':'); - if (index != -1) { - String prefix = qName.substring(0, index); + String prefix = getPrefix(qName); + if (prefix.length() > 0) { pageInfo.addPrefix(prefix); if ("jsp".equals(prefix) && !JSP_URI.equals(uri)) { pageInfo.setIsJspPrefixHijacked(true); @@ -1376,6 +1374,14 @@ class JspDocumentParser } } + private String getPrefix(String qName) { + int index = qName.indexOf(':'); + if (index != -1) { + return qName.substring(0, index); + } + return ""; + } + /* * Gets SAXParser. * -- 2.11.0