https://issues.apache.org/bugzilla/show_bug.cgi?id=45067

           Summary: UDecoder.java stack dumps on valid URL encoding
           Product: Tomcat 6
           Version: 6.0.16
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: major
          Priority: P2
         Component: Connectors
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Some URL-encoded text causes UDecoder to stack dump and not process a request
parameter.

I looked at the source code of UDecoder.java and it simply checks if a %
character is followed by 2 hex digits. It doesn't handle cases like the degree
symbol (e.g., 0-40°C) and the dagger (e.g., $199.99†) when text pasted into
a text field and submitted as part of a form. IE 7 URL encodeds the text like
%u2020, and UDecoder fails the isHexDigit test on the "u" character. Java's
URLdecode class also stack dumps on this...

A work-around would be appreciated.

The stack dump follows:
May 22, 2008 11:23:41 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: May 22, 2008 11:23:41 PM org.apache.tomcat.util.http.Parameters
processParameters WARNING: Parameters: Character decoding failed. Parameter
skipped. java.io.CharConversionException: isHexDigit at
org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:88) at
org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:49) at
org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:412) at
org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:394)
at
org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:346)
at org.apache.catalina.connector.Request.parseParameters(Request.java:2491) at
org.apache.catalina.connector.Request.getParameter(Request.java:1040) at
org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
at javarex.beans.servlet.util.HttpServlet.doPost(HttpServlet.java:386) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at
javarex.beans.servlet.ServletApplication.service(ServletApplication.java:141)
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:219)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
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:844)
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(Unknown Source)


-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to