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

            Bug ID: 54248
           Summary: Retrieving content that contains a BOM via
                    request.getReader() issue
           Product: Tomcat 6
           Version: 6.0.32
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: dav...@bigkahuna.org
    Classification: Unclassified

If a request contains Content that includes the BOM - in my case Content-Type:
application/xml; charset-utf-16 - and the content has a BOM (FF FE), when
fetched utilizing the BufferedReader from getReader() - the first request
serviced on the AJP thread works correctly (encoded correctly, only characters
fetched), however, any subsequent request on the thread which includes the BOM
has the BOM being delivered to the application. It appears via review of the
Tomcat code, that the recycle() method in B2CConverter simply ensures the
socket's data has been completely flushed and the underlying InputStream
doesn't get reset (don't really know if there is a way to do this without
re-instantiating it) to ensure subsequent requests BOM is consumed. I proved
this as a test by adding a call to reset() within the recycle() method which
re-instantiates the underlying InputStreams and the problem resolved itself. 

I've temporarily resolved the issue in my application code by using
request.getInputStream() and using request.getCharacterEncoding() and encoding
the content inside my application.

-- 
You are receiving this mail because:
You are the assignee for the bug.

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

Reply via email to