From: markt Date: Thu, 23 Jun 2011 15:51:55 +0000 (+0000) Subject: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=36362 X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=1b5b62c3fdf241f4ea72e102ba948466c1d05aeb;p=tomcat7.0 Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=36362 Handle the case where tag file attributes (which can use any valid XML name) have a name which is not a Java identifier. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1138950 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java index 998dccaca..6ddfbc617 100644 --- a/java/org/apache/jasper/compiler/Generator.java +++ b/java/org/apache/jasper/compiler/Generator.java @@ -3675,13 +3675,16 @@ class Generator { out.print(JspUtil.toJavaSourceType(attrInfos[i].getTypeName())); out.print(" "); } - out.print(attrInfos[i].getName()); + out.print(JspUtil.makeJavaIdentifier(attrInfos[i].getName())); out.println(";"); } out.println(); // Define attribute getter and setter methods for (int i = 0; i < attrInfos.length; i++) { + String javaName = + JspUtil.makeJavaIdentifier(attrInfos[i].getName()); + // getter method out.printin("public "); if (attrInfos[i].isFragment()) { @@ -3694,7 +3697,7 @@ class Generator { out.println(" {"); out.pushIndent(); out.printin("return this."); - out.print(attrInfos[i].getName()); + out.print(javaName); out.println(";"); out.popIndent(); out.printil("}"); @@ -3710,20 +3713,20 @@ class Generator { out.print(JspUtil.toJavaSourceType(attrInfos[i].getTypeName())); out.print(" "); } - out.print(attrInfos[i].getName()); + out.print(javaName); out.println(") {"); out.pushIndent(); out.printin("this."); - out.print(attrInfos[i].getName()); + out.print(javaName); out.print(" = "); - out.print(attrInfos[i].getName()); + out.print(javaName); out.println(";"); if (ctxt.isTagFile()) { // Tag files should also set jspContext attributes out.printin("jspContext.setAttribute(\""); out.print(attrInfos[i].getName()); out.print("\", "); - out.print(attrInfos[i].getName()); + out.print(javaName); out.println(");"); } out.popIndent(); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index b0643058b..d64e56b13 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -184,6 +184,10 @@ If you later downgrade from 7.0.17 or later to 7.0.16 or earlier, you must empty the work directory as part of the downgrade process. (markt) + + 36362: Handle the case where tag file attributes (which can + use any valid XML name) have a name which is a Java identifier. (markt) +