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]