From: markt Date: Thu, 8 May 2008 21:53:35 +0000 (+0000) Subject: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=42943 X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=f9bd2f4b4d70fbf3ec808fc166e264a6ebe49ac2;p=tomcat7.0 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 --- 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. *