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 2008/05/15 23:08:47 UTC

svn commit: r656839 - in /tomcat/tc6.0.x/trunk: STATUS.txt java/org/apache/jasper/compiler/Validator.java webapps/docs/changelog.xml

Author: markt
Date: Thu May 15 14:08:47 2008
New Revision: 656839

URL: http://svn.apache.org/viewvc?rev=656839&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44986
Page encoding consistency checks should be case insensitive

Modified:
    tomcat/tc6.0.x/trunk/STATUS.txt
    tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java
    tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=656839&r1=656838&r2=656839&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Thu May 15 14:08:47 2008
@@ -57,12 +57,6 @@
   +1: markt
   -1: 
 
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44986
-  Page encoding consistency checks should be case insensitive
-  http://svn.apache.org/viewvc?rev=656024&view=rev
-  +1: markt, remm, fhanik
-  -1: 
-
 * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44968
   Provide more information when keystore load fails
   http://svn.apache.org/viewvc?rev=656739&view=rev

Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java?rev=656839&r1=656838&r2=656839&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java Thu May 15 14:08:47 2008
@@ -323,11 +323,12 @@
          * 
          * @throws JasperException in case of page encoding mismatch
          */
-        private String comparePageEncodings(String pageDirEnc,
+        private String comparePageEncodings(String thePageDirEnc,
                 Node.PageDirective pageDir) throws JasperException {
 
             Node.Root root = pageDir.getRoot();
-            String configEnc = root.getJspConfigPageEncoding();
+            String configEnc = root.getJspConfigPageEncoding().toUpperCase();
+            String pageDirEnc = thePageDirEnc.toUpperCase();
 
             /*
              * Compare the 'pageEncoding' attribute of the page directive with
@@ -355,7 +356,7 @@
              * identical.
              */
             if ((root.isXmlSyntax() && root.isEncodingSpecifiedInProlog()) || root.isBomPresent()) {
-                String pageEnc = root.getPageEncoding();
+                String pageEnc = root.getPageEncoding().toUpperCase();
                 if (!pageDirEnc.equals(pageEnc)
                         && (!pageDirEnc.startsWith("UTF-16") || !pageEnc
                                 .startsWith("UTF-16"))) {

Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=656839&r1=656838&r2=656839&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Thu May 15 14:08:47 2008
@@ -253,6 +253,10 @@
       <fix>
         <bug>44877</bug>: Prevent collisions on tag pool names. (markt)
       </fix>
+      <fix>
+        <bug>44986</bug>: Make page encoding consistency checks case-insensitive.
+        (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Webapps">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r656839 - in /tomcat/tc6.0.x/trunk: STATUS.txt java/org/apache/jasper/compiler/Validator.java webapps/docs/changelog.xml

Posted by Mark Thomas <ma...@apache.org>.
Mark Thomas wrote:
> Remy Maucherat wrote:
>> On Fri, 2008-05-16 at 14:08 +0100, Mark Thomas wrote:
>>>>> java.lang.NullPointerException
>>>>>     at 
>>>>> org.apache.jasper.compiler.Validator$DirectiveVisitor.comparePageEncodings(Validator.java:330) 
>>>>>
>>> Yep, my bad. I'll take a look over the weekend. Fix should be simple.
>>
>> Woops, I hadn't rereviewed the thing, since it looked the sme as my own
>> patch.
>> There's a if (configEnc != null) { block just after it, which could be
>> used. pageDirEnc cannot possibly be null, right ?
>>
>> Rémy
> 
> Based on the line number in the stacktrace, it is thePageDirEnc which is 
> null.  I need to do some testing for this one. It looks like there might 
> always have been a NPE risk here.
> 
> Mark

For whatever reason, it appears the line numbers didn't quite agree. Remy 
is correct that pageDirEnc can't be null. Further down the method, neither 
can pageEnc so it is only with configEnc that an NPE could occur.

I have patched trunk and will propose this for 6.0.x shortly.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r656839 - in /tomcat/tc6.0.x/trunk: STATUS.txt java/org/apache/jasper/compiler/Validator.java webapps/docs/changelog.xml

Posted by Mark Thomas <ma...@apache.org>.
Remy Maucherat wrote:
> On Fri, 2008-05-16 at 14:08 +0100, Mark Thomas wrote:
>>>> java.lang.NullPointerException
>>>> 	at org.apache.jasper.compiler.Validator$DirectiveVisitor.comparePageEncodings(Validator.java:330)
>> Yep, my bad. I'll take a look over the weekend. Fix should be simple.
> 
> Woops, I hadn't rereviewed the thing, since it looked the sme as my own
> patch.
> There's a if (configEnc != null) { block just after it, which could be
> used. pageDirEnc cannot possibly be null, right ?
> 
> Rémy

Based on the line number in the stacktrace, it is thePageDirEnc which is 
null.  I need to do some testing for this one. It looks like there might 
always have been a NPE risk here.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r656839 - in /tomcat/tc6.0.x/trunk: STATUS.txt java/org/apache/jasper/compiler/Validator.java webapps/docs/changelog.xml

Posted by Remy Maucherat <re...@apache.org>.
On Fri, 2008-05-16 at 14:08 +0100, Mark Thomas wrote:
> >> java.lang.NullPointerException
> >> 	at org.apache.jasper.compiler.Validator$DirectiveVisitor.comparePageEncodings(Validator.java:330)
> 
> Yep, my bad. I'll take a look over the weekend. Fix should be simple.

Woops, I hadn't rereviewed the thing, since it looked the sme as my own
patch.
There's a if (configEnc != null) { block just after it, which could be
used. pageDirEnc cannot possibly be null, right ?

Rémy



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r656839 - in /tomcat/tc6.0.x/trunk: STATUS.txt java/org/apache/jasper/compiler/Validator.java webapps/docs/changelog.xml

Posted by Mark Thomas <ma...@apache.org>.
Markus Schönhaber wrote:
> markt@apache.org wrote:
> 
>> Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java
>> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java?rev=656839&r1=656838&r2=656839&view=diff
>> ==============================================================================
>> --- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java (original)
>> +++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java Thu May 15 14:08:47 2008
>> @@ -323,11 +323,12 @@
>>           * 
>>           * @throws JasperException in case of page encoding mismatch
>>           */
>> -        private String comparePageEncodings(String pageDirEnc,
>> +        private String comparePageEncodings(String thePageDirEnc,
>>                  Node.PageDirective pageDir) throws JasperException {
>>  
>>              Node.Root root = pageDir.getRoot();
>> -            String configEnc = root.getJspConfigPageEncoding();
>> +            String configEnc = root.getJspConfigPageEncoding().toUpperCase();
>> +            String pageDirEnc = thePageDirEnc.toUpperCase();
>>  
>>              /*
>>               * Compare the 'pageEncoding' attribute of the page directive with
>> @@ -355,7 +356,7 @@
>>               * identical.
>>               */
>>              if ((root.isXmlSyntax() && root.isEncodingSpecifiedInProlog()) || root.isBomPresent()) {
>> -                String pageEnc = root.getPageEncoding();
>> +                String pageEnc = root.getPageEncoding().toUpperCase();
>>                  if (!pageDirEnc.equals(pageEnc)
>>                          && (!pageDirEnc.startsWith("UTF-16") || !pageEnc
>>                                  .startsWith("UTF-16"))) {
> 
> While a build yesterday - without this change - works fine, a build with
> the above patch applied fails to compile JSPs for me:
> 
>> java.lang.NullPointerException
>> 	at org.apache.jasper.compiler.Validator$DirectiveVisitor.comparePageEncodings(Validator.java:330)

Yep, my bad. I'll take a look over the weekend. Fix should be simple.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r656839 - in /tomcat/tc6.0.x/trunk: STATUS.txt java/org/apache/jasper/compiler/Validator.java webapps/docs/changelog.xml

Posted by Markus Schönhaber <to...@list-post.mks-mail.de>.
markt@apache.org wrote:

> Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java?rev=656839&r1=656838&r2=656839&view=diff
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Validator.java Thu May 15 14:08:47 2008
> @@ -323,11 +323,12 @@
>           * 
>           * @throws JasperException in case of page encoding mismatch
>           */
> -        private String comparePageEncodings(String pageDirEnc,
> +        private String comparePageEncodings(String thePageDirEnc,
>                  Node.PageDirective pageDir) throws JasperException {
>  
>              Node.Root root = pageDir.getRoot();
> -            String configEnc = root.getJspConfigPageEncoding();
> +            String configEnc = root.getJspConfigPageEncoding().toUpperCase();
> +            String pageDirEnc = thePageDirEnc.toUpperCase();
>  
>              /*
>               * Compare the 'pageEncoding' attribute of the page directive with
> @@ -355,7 +356,7 @@
>               * identical.
>               */
>              if ((root.isXmlSyntax() && root.isEncodingSpecifiedInProlog()) || root.isBomPresent()) {
> -                String pageEnc = root.getPageEncoding();
> +                String pageEnc = root.getPageEncoding().toUpperCase();
>                  if (!pageDirEnc.equals(pageEnc)
>                          && (!pageDirEnc.startsWith("UTF-16") || !pageEnc
>                                  .startsWith("UTF-16"))) {

While a build yesterday - without this change - works fine, a build with
the above patch applied fails to compile JSPs for me:

> java.lang.NullPointerException
> 	at org.apache.jasper.compiler.Validator$DirectiveVisitor.comparePageEncodings(Validator.java:330)
> 	at org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:197)
> 	at org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:590)
> 	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2343)
> 	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2393)
> 	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2399)
> 	at org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
> 	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2343)
> 	at org.apache.jasper.compiler.Validator.validate(Validator.java:1701)
> 	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:166)
> 	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
> 	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
> 	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
> 	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
> 	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
> 	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
> 	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:183)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 	at java.lang.Thread.run(Thread.java:619)

Regards
  mks

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org