markt 2004/12/18 04:04:40 Modified: catalina/src/conf web.xml catalina/src/share/org/apache/catalina/servlets DefaultServlet.java webapps/docs changelog.xml default-servlet.xml Log: Fix bug 31201. When including static files with <jsp:include ...> platform default file encoding is no longer assumed for the static file. This was causing i18m issues, particularly for Japanese users. - Patch supplied (with minor mods) by Takayuki Kaneko - Ported from TC4 Revision Changes Path 1.55 +3 -0 jakarta-tomcat-catalina/catalina/src/conf/web.xml Index: web.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/conf/web.xml,v retrieving revision 1.54 retrieving revision 1.55 diff -u -r1.54 -r1.55 --- web.xml 3 Dec 2004 15:17:34 -0000 1.54 +++ web.xml 18 Dec 2004 12:04:40 -0000 1.55 @@ -27,6 +27,9 @@ <!-- debug Debugging detail level for messages logged --> <!-- by this servlet. [0] --> <!-- --> + <!-- fileEncoding Encoding to be used to read static resources --> + <!-- [platform default] --> + <!-- --> <!-- input Input buffer size (in bytes) when reading --> <!-- resources to be served. [2048] --> <!-- --> 1.31 +38 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java Index: DefaultServlet.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- DefaultServlet.java 29 Oct 2004 22:29:29 -0000 1.30 +++ DefaultServlet.java 18 Dec 2004 12:04:40 -0000 1.31 @@ -139,6 +139,12 @@ protected ProxyDirContext resources = null; + /** + * File encoding to be used when reading static files. If none is specified + * the platform default is used. + */ + protected String fileEncoding = null; + // ----------------------------------------------------- Static Initializer @@ -228,6 +234,12 @@ } catch (Throwable t) { ; } + try { + value = getServletConfig().getInitParameter("fileEncoding"); + fileEncoding = value; + } catch (Throwable t) { + ; + } globalXsltFile = getServletConfig().getInitParameter("globalXsltFile"); localXsltFile = getServletConfig().getInitParameter("localXsltFile"); @@ -1711,8 +1723,14 @@ } else { resourceInputStream = is; } - // FIXME : i18n ? - Reader reader = new InputStreamReader(resourceInputStream); + + Reader reader; + if (fileEncoding == null) { + reader = new InputStreamReader(resourceInputStream); + } else { + reader = new InputStreamReader(resourceInputStream, + fileEncoding); + } // Copy the input stream to the output stream exception = copyRange(reader, writer); @@ -1783,7 +1801,15 @@ IOException exception = null; InputStream resourceInputStream = cacheEntry.resource.streamContent(); - Reader reader = new InputStreamReader(resourceInputStream); + + Reader reader; + if (fileEncoding == null) { + reader = new InputStreamReader(resourceInputStream); + } else { + reader = new InputStreamReader(resourceInputStream, + fileEncoding); + } + exception = copyRange(reader, writer, range.start, range.end); // Clean up the input stream @@ -1877,7 +1903,14 @@ while ( (exception == null) && (ranges.hasMoreElements()) ) { InputStream resourceInputStream = cacheEntry.resource.streamContent(); - Reader reader = new InputStreamReader(resourceInputStream); + + Reader reader; + if (fileEncoding == null) { + reader = new InputStreamReader(resourceInputStream); + } else { + reader = new InputStreamReader(resourceInputStream, + fileEncoding); + } Range currentRange = (Range) ranges.nextElement(); 1.207 +4 -0 jakarta-tomcat-catalina/webapps/docs/changelog.xml Index: changelog.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/changelog.xml,v retrieving revision 1.206 retrieving revision 1.207 diff -u -r1.206 -r1.207 --- changelog.xml 15 Dec 2004 12:06:43 -0000 1.206 +++ changelog.xml 18 Dec 2004 12:04:40 -0000 1.207 @@ -44,6 +44,10 @@ <fix> <bug>32713</bug>: Fix resource-env-ref handling. (remm) </fix> + <fix> + <bug>31201</bug>: Improve i18n support in DefaultServlet. This was causing + problems with JSP include actions and static files. (markt) + </fix> </changelog> </subsection> 1.2 +7 -0 jakarta-tomcat-catalina/webapps/docs/default-servlet.xml Index: default-servlet.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/default-servlet.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- default-servlet.xml 19 Jun 2003 21:41:48 -0000 1.1 +++ default-servlet.xml 18 Dec 2004 12:04:40 -0000 1.2 @@ -144,6 +144,13 @@ DELETE are rejected? [true] </td> </tr> + <tr> + <th valign='top'>fileEncoding</th> + <td valign='top'> + File encoding to be used when reading static resources. + [platform default] + </td> + </tr> </table>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]