You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/09/05 08:27:38 UTC
svn commit: r1840099 - in /tomcat/trunk: java/org/apache/jasper/compiler/
java/org/apache/jasper/resources/ webapps/docs/
Author: markt
Date: Wed Sep 5 08:27:38 2018
New Revision: 1840099
URL: http://svn.apache.org/viewvc?rev=1840099&view=rev
Log:
Correct parsing of XML whitespace in TLD function signatures that incorrectly only looked for the space character.
Modified:
tomcat/trunk/java/org/apache/jasper/compiler/Validator.java
tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties
tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_es.properties
tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_fr.properties
tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_ja.properties
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/jasper/compiler/Validator.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/Validator.java?rev=1840099&r1=1840098&r2=1840099&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/compiler/Validator.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/Validator.java Wed Sep 5 08:27:38 2018
@@ -25,6 +25,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import javax.el.ELException;
import javax.el.ExpressionFactory;
@@ -420,6 +422,9 @@ class Validator {
*/
private static class ValidateVisitor extends Node.Visitor {
+ // Pattern to extract a method name from a full method signature
+ private static final Pattern METHOD_NAME_PATTERN = Pattern.compile(".*[ \t\n\r]+(.+)[ \t\n\r]*\\(.*");
+
private final PageInfo pageInfo;
private final ErrorDispatcher err;
@@ -1640,18 +1645,13 @@ class Validator {
FunctionInfo funcInfo = func.getFunctionInfo();
String signature = funcInfo.getFunctionSignature();
- int start = signature.indexOf(' ');
- if (start < 0) {
+ Matcher m = METHOD_NAME_PATTERN.matcher(signature);
+ if (!m.matches()) {
err.jspError("jsp.error.tld.fn.invalid.signature", func
.getPrefix(), func.getName());
}
- int end = signature.indexOf('(');
- if (end < 0) {
- err.jspError(
- "jsp.error.tld.fn.invalid.signature.parenexpected",
- func.getPrefix(), func.getName());
- }
- return signature.substring(start + 1, end).trim();
+
+ return m.group(1);
}
/**
Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties?rev=1840099&r1=1840098&r2=1840099&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties [UTF-8] (original)
+++ tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties [UTF-8] Wed Sep 5 08:27:38 2018
@@ -270,7 +270,6 @@ jsp.error.jspbody.emptybody.only=The [{0
jsp.error.no.scriptlets=Scripting elements ( <%!, <jsp:declaration, <%=, <jsp:expression, <%, <jsp:scriptlet ) are disallowed here.
jsp.error.tld.fn.invalid.signature=Invalid syntax for function signature in TLD. Tag Library: [{0}], Function: [{1}]
jsp.error.tld.fn.duplicate.name=Duplicate function name [{0}] in tag library [{1}]
-jsp.error.tld.fn.invalid.signature.parenexpected=Invalid syntax for function signature in TLD. Parenthesis ''('' expected. Tag Library: [{0}], Function: [{1}].
jsp.error.tld.mandatory.element.missing=Mandatory TLD element [{0}] missing or empty in TLD [{1}]
jsp.error.dynamic.attributes.not.implemented=The [{0}] tag declares that it accepts dynamic attributes but does not implement the required interface
jsp.error.attribute.noequal=equal symbol expected
Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_es.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_es.properties?rev=1840099&r1=1840098&r2=1840099&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_es.properties [UTF-8] (original)
+++ tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_es.properties [UTF-8] Wed Sep 5 08:27:38 2018
@@ -258,7 +258,6 @@ jsp.error.jspbody.emptybody.only = El ta
jsp.error.no.scriptlets = Los elementos de Scripting (<%!, <jsp:declaration, <%=, <jsp:expression, <%, <jsp:scriptlet ) no están permitidos aquí.
jsp.error.tld.fn.invalid.signature = Sintáxis incorrecta para firma de función en TLD. Biblioteca de Tag: [{0}], Función: [{1}]
jsp.error.tld.fn.duplicate.name = Nombre duplicado de función [{0}] en biblioteca de tag [{1}]
-jsp.error.tld.fn.invalid.signature.parenexpected = Sintáxis incorrecta para firma de función en TLD. Se esperaba Paréntesis ''(''. Biblioteca de Tag: [{0}], Función: [{1}].
jsp.error.tld.mandatory.element.missing = Falta o está vacío elemento TLD obligatorio: [{0}]
jsp.error.dynamic.attributes.not.implemented = El tag [{0}] declara que acepta atributos dinámicos pero no implementa la interfaz requerida
jsp.error.attribute.noequal = se esperaba símbolo igual
Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_fr.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_fr.properties?rev=1840099&r1=1840098&r2=1840099&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_fr.properties [UTF-8] (original)
+++ tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_fr.properties [UTF-8] Wed Sep 5 08:27:38 2018
@@ -188,7 +188,6 @@ jsp.error.jspbody.required=Doit utiliser
jsp.error.jspbody.emptybody.only=Le tag [{0}] ne peut avoir que jsp:attribute dans son corps.
jsp.error.no.scriptlets=Les éléments de Scripting ( <%!, <jsp:declaration, <%=, <jsp:expression, <%, <jsp:scriptlet ) ne sont pas autorisés ici.
jsp.error.tld.fn.invalid.signature=Synthaxe invalide pour la signature de fonction dans la TLD. Bibliothèque de Tag : [{0}], Fonction: [{1}]
-jsp.error.tld.fn.invalid.signature.parenexpected=Synthaxe invalide pour la signature de fonction dans la TLD. Parenthèse ''('' attendue. Bibliothèque de Tag: [{0}], Fonction: [{1}].
jsp.error.dynamic.attributes.not.implemented=Le tag [{0}] indique qu''il accepte des attributs dynamics mais n''implémente pas l''interface requise
jsp.error.attribute.noequal=Symbole égal (equal) attendu
jsp.error.attribute.noquote=Symbole guillemet (quote) attendu
Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_ja.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_ja.properties?rev=1840099&r1=1840098&r2=1840099&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_ja.properties [UTF-8] (original)
+++ tomcat/trunk/java/org/apache/jasper/resources/LocalStrings_ja.properties [UTF-8] Wed Sep 5 08:27:38 2018
@@ -231,7 +231,6 @@ jsp.error.jspbody.emptybody.only=[{0}] �
jsp.error.no.scriptlets=スクリプティング要素 ( <%!、<jsp:declaration、<%=、<jsp:expression、<%、<jsp:scriptlet ) はここでは許されません
jsp.error.tld.fn.invalid.signature=TLDの中の関数シグネチャに対する無効な構文です。タグライブラリ: [{0}]、関数: [{1}]
jsp.error.tld.fn.duplicate.name=タグライブラリ [{1}] の中の関数名 [{0}] が重複しています
-jsp.error.tld.fn.invalid.signature.parenexpected=TLDの中の関数シグネチャに対する無効な構文です。括弧 ''('' がありません。タグライブラリ: [{0}]、関数: [{1}]。
jsp.error.tld.mandatory.element.missing=必須TLD要素がない、又は空です: [{0}]
jsp.error.dynamic.attributes.not.implemented=[{0}] タグはそれがdynamic属性を受け付けると宣言していますが、それに必要なインタフェースを実装していません
jsp.error.attribute.noequal=等号記号が必要です
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1840099&r1=1840098&r2=1840099&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Sep 5 08:27:38 2018
@@ -45,6 +45,14 @@
issues do not "pop up" wrt. others).
-->
<section name="Tomcat 9.0.13 (markt)" rtext="in development">
+ <subsection name="Jasper">
+ <changelog>
+ <fix>
+ Correct parsing of XML whitespace in TLD function signatures that
+ incorrectly only looked for the space character. (markt)
+ </fix>
+ </changelog>
+ </subsection>
</section>
<section name="Tomcat 9.0.12 (markt)" rtext="release in progress">
<subsection name="Catalina">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org