luehe 2004/07/28 13:42:55 Modified: catalina/src/share/org/apache/catalina/connector Response.java Log: New attempt at fixing Bugtraq 6152759 ("Default charset not included in Content-Type response header if no char encoding was specified"), as suggested by Bill Barker. This also fixes a spec non-compliance issue in that ServletResponse.getWriter() must update, which it hasn't, the char encoding to ISO-8859-1 if the response's character encoding has not been specified as described in <code>getCharacterEncoding</code> (i.e., the method just returns the default value ISO-8859-1), with the effect that a subsequent call to getContentType() will include a charset=ISO-8859-1 component which will also be reflected in the Content-Type response header, thereby satisfying the Servlet spec requirement that containers must communicate the character encoding used for the servlet response's writer to the client. Revision Changes Path 1.6 +15 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/Response.java Index: Response.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/Response.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- Response.java 28 Jul 2004 18:51:10 -0000 1.5 +++ Response.java 28 Jul 2004 20:42:55 -0000 1.6 @@ -596,6 +596,20 @@ throw new IllegalStateException (sm.getString("coyoteResponse.getWriter.ise")); + /* + * If the response's character encoding has not been specified as + * described in <code>getCharacterEncoding</code> (i.e., the method + * just returns the default value <code>ISO-8859-1</code>), + * <code>getWriter</code> updates it to <code>ISO-8859-1</code> + * (with the effect that a subsequent call to getContentType() will + * include a charset=ISO-8859-1 component which will also be + * reflected in the Content-Type response header, thereby satisfying + * the Servlet spec requirement that containers must communicate the + * character encoding used for the servlet response's writer to the + * client). + */ + setCharacterEncoding(getCharacterEncoding()); + usingWriter = true; outputBuffer.checkConverter(); if (writer == null) {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]