You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bi...@apache.org on 2003/05/31 04:45:58 UTC
cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/generators ErrorHandler.java
billbarker 2003/05/30 19:45:58
Modified: src/share/org/apache/tomcat/modules/generators
ErrorHandler.java
Log:
Localize the charset for all error handlers.
Also change to always set the charset if it is available, since IMHO it is better to send a charset then to assume that the browser defaults to iso-latin-1 (which is false for MSIE, for example).
This clearly needs to be done for Japanese servers. It should be a pretty minor change for en, fr, and sp servers. Other Locals where probably just as broken before.
Fix for bug #20361.
Reported By: Gary gbraven@yahoo.com
Revision Changes Path
1.28 +27 -8 jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/ErrorHandler.java
Index: ErrorHandler.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/ErrorHandler.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- ErrorHandler.java 16 Oct 2002 06:03:39 -0000 1.27
+++ ErrorHandler.java 31 May 2003 02:45:58 -0000 1.28
@@ -485,7 +485,14 @@
throws Exception
{
String msg=(String)req.getAttribute("javax.servlet.error.message");
- res.setContentType("text/html"); // ISO-8859-1 default
+
+ String charset = LocaleToCharsetMap.getCharset(Locale.getDefault());
+ if (charset == null) {
+ res.setContentType("text/html");
+ } else {
+ res.setContentType("text/html; charset=" + charset);
+ res.setUsingWriter(true);
+ }
// "javax.servlet.include.request_uri" is set to this handler
String requestURI = req.requestURI().toString();
@@ -591,7 +598,7 @@
// only include <head>...<body> if reset was successful
if ( needsHead ) {
String charset = LocaleToCharsetMap.getCharset(Locale.getDefault());
- if (charset == null || charset.equalsIgnoreCase("ISO-8859-1"))
+ if (charset == null)
res.setContentType("text/html");
else {
res.setContentType("text/html; charset=" + charset);
@@ -690,13 +697,18 @@
if( sc == 304 ) {
//NotModified must not return a body
return;
- } else {
- // don't set a content type if we are answering If-Modified-Since.
- // Proxy caches might update their cached content-type with this
- // info (mod_proxy does it). Martin Algesten 15th Oct, 2002.
+ }
+ // don't set a content type if we are answering If-Modified-Since.
+ // Proxy caches might update their cached content-type with this
+ // info (mod_proxy does it). Martin Algesten 15th Oct, 2002.
+ String charset = LocaleToCharsetMap.getCharset(Locale.getDefault());
+ if (charset == null) {
res.setContentType("text/html");
+ } else {
+ res.setContentType("text/html; charset=" + charset);
+ res.setUsingWriter(true);
}
-
+
if( sbNote==0 ) {
sbNote=req.getContextManager().getNoteId(ContextManager.REQUEST_NOTE,
"StatusHandler.buff");
@@ -815,7 +827,14 @@
if( debug>0) ctx.log("Redirect " + location + " " + req );
- res.setContentType("text/html"); // ISO-8859-1 default
+ String charset = LocaleToCharsetMap.getCharset(Locale.getDefault());
+ if (charset == null) {
+ res.setContentType("text/html");
+ } else {
+ res.setContentType("text/html; charset=" + charset);
+ res.setUsingWriter(true);
+ }
+
res.setHeader("Location", location);
if( sbNote==0 ) {
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org