s/escpaing/escaping/ in systemprops.xml
2008/8/14 <[EMAIL PROTECTED]>: > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]