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]

Reply via email to