Author: markt
Date: Thu Aug 14 02:04:26 2008
New Revision: 685823
URL: http://svn.apache.org/viewvc?rev=685823&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=45015
You can't use an unescaped quote if you quote the value with that character
Modified:
tomcat/container/tc5.5.x/webapps/docs/config/systemprops.xml
tomcat/current/tc5.5.x/STATUS.txt
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Parser.java
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/resources/LocalStrings.properties
Modified: tomcat/container/tc5.5.x/webapps/docs/config/systemprops.xml
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/config/systemprops.xml?rev=685823&r1=685822&r2=685823&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/config/systemprops.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/config/systemprops.xml Thu Aug 14
02:04:26 2008
@@ -38,6 +38,13 @@
<section name="Jasper">
<properties>
+ <property name="org.apache.jasper.compiler.
Parser.STRICT_QUOTE_ESCAPING">
+ <p>If <code>false</code> the requirements for escpaing quotes in JSP
+ attributes will be relaxed so that a missing required quote will not
+ cause an error. If not specified, the specification compliant default of
+ <code>true</code> will be used.</p>
+ </property>
+
<property name="org.apache.jasper.runtime. BodyContentImpl.LIMIT_BUFFER">
<p>If <code>true</code>, any tag buffer that expands beyond
<code>org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE</code> will be
Modified: tomcat/current/tc5.5.x/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/current/tc5.5.x/STATUS.txt?rev=685823&r1=685822&r2=685823&view=diff
==============================================================================
--- tomcat/current/tc5.5.x/STATUS.txt (original)
+++ tomcat/current/tc5.5.x/STATUS.txt Thu Aug 14 02:04:26 2008
@@ -49,13 +49,6 @@
+1: markt, yoavs, fhanik
-1:
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=45015
- You can't use an unescaped quote if you quote the value with that character
- http://svn.apache.org/viewvc?rev=657231&view=rev
- http://svn.apache.org/viewvc?rev=670074&view=rev
- +1: markt, yoavs, fhanik
- -1:
-
* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=45195
NPE when calling getAttribute(null). The spec is unclear but this
is a regression from 5.0.x Also avoid NPE on remove
Modified: tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Parser.java
URL:
http://svn.apache.org/viewvc/tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Parser.java?rev=685823&r1=685822&r2=685823&view=diff
==============================================================================
--- tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Parser.java
(original)
+++ tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Parser.java Thu
Aug 14 02:04:26 2008
@@ -67,6 +67,11 @@
private static final String JAVAX_BODY_CONTENT_TEMPLATE_TEXT =
"JAVAX_BODY_CONTENT_TEMPLATE_TEXT";
+ private static final boolean STRICT_QUOTE_ESCAPING = Boolean.valueOf(
+ System.getProperty(
+ "org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING",
+ "true")).booleanValue();
+
/**
* The constructor
*/
@@ -242,7 +247,8 @@
err.jspError(start, "jsp.error.attribute.unterminated", watch);
}
- String ret = parseQuoted(reader.getText(start, stop));
+ String ret = parseQuoted(start, reader.getText(start, stop),
+ watch.charAt(watch.length() - 1));
if (watch.length() == 1) // quote
return ret;
@@ -261,7 +267,8 @@
* | '\$'
* | Char
*/
- private String parseQuoted(String tx) {
+ private String parseQuoted(Mark start, String tx, char quote)
+ throws JasperException {
StringBuffer buf = new StringBuffer();
int size = tx.length();
int i = 0;
@@ -295,6 +302,10 @@
buf.append('\\');
++i;
}
+ } else if (ch == quote && STRICT_QUOTE_ESCAPING) {
+ // Unescaped quote character
+ err.jspError(start, "jsp.error.attribute.noescape", tx,
+ "" + quote);
} else {
buf.append(ch);
++i;
Modified:
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/resources/LocalStrings.properties
URL:
http://svn.apache.org/viewvc/tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/resources/LocalStrings.properties?rev=685823&r1=685822&r2=685823&view=diff
==============================================================================
---
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/resources/LocalStrings.properties
(original)
+++
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/resources/LocalStrings.properties
Thu Aug 14 02:04:26 2008
@@ -333,6 +333,7 @@
jsp.error.attribute.noequal=equal symbol expected
jsp.error.attribute.noquote=quote symbol expected
jsp.error.attribute.unterminated=attribute for {0} is not properly terminated
+jsp.error.attribute.noescape=Attribute value {0} is quoted with {1} which must
be escaped when used within the value
jsp.error.missing.tagInfo=TagInfo object for {0} is missing from TLD
jsp.error.fragmentwithtype=Cannot specify both 'fragment' and 'type'
attributes. If 'fragment' is present, 'type' is fixed as
'javax.servlet.jsp.tagext.JspFragment'
jsp.error.fragmentwithrtexprvalue=Cannot specify both 'fragment' and
'rtexprvalue' attributes. If 'fragment' is present, 'rtexprvalue' is fixed as
'true'
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]