craigmcc    00/12/22 10:58:02

  Modified:    catalina/src/share/org/apache/catalina/connector
                        RequestBase.java
  Log:
  Fix spec compliance bug.  The new ServletRequest.setCharacterEncoding()
  method should throw UnsupportedEncodingException immediately on an invalid
  encoding, rather than waiting for the servlet to call getReader().
  
  Fixes test failure on Watchdog test ServletRequestSetCharacterEncoding_1Test.
  
  Revision  Changes    Path
  1.9       +16 -5     
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/RequestBase.java
  
  Index: RequestBase.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/RequestBase.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- RequestBase.java  2000/12/02 03:52:55     1.8
  +++ RequestBase.java  2000/12/22 18:58:00     1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/RequestBase.java,v
 1.8 2000/12/02 03:52:55 remm Exp $
  - * $Revision: 1.8 $
  - * $Date: 2000/12/02 03:52:55 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/RequestBase.java,v
 1.9 2000/12/22 18:58:00 craigmcc Exp $
  + * $Revision: 1.9 $
  + * $Date: 2000/12/22 18:58:00 $
    *
    * ====================================================================
    *
  @@ -69,6 +69,7 @@
   import java.io.InputStream;
   import java.io.InputStreamReader;
   import java.io.IOException;
  +import java.io.UnsupportedEncodingException;
   import java.net.Socket;
   import java.security.Principal;
   import java.util.ArrayList;
  @@ -97,7 +98,7 @@
    * the connector-specific methods need to be implemented.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.8 $ $Date: 2000/12/02 03:52:55 $
  + * @version $Revision: 1.9 $ $Date: 2000/12/22 18:58:00 $
    */
   
   public abstract class RequestBase
  @@ -980,10 +981,20 @@
        *
        * @param enc The character encoding to be used
        *
  +     * @exception UnsupportedEncodingException if the specified encoding
  +     *  is not supported
  +     *
        * @since Servlet 2.3
        */
  -    public void setCharacterEncoding(String enc) {
  +    public void setCharacterEncoding(String enc)
  +        throws UnsupportedEncodingException {
  +
  +        // Ensure that the specified encoding is valid
  +        byte buffer[] = new byte[1];
  +        buffer[0] = (byte) 'a';
  +        String dummy = new String(buffer, enc);
   
  +        // Save the validated encoding
           this.characterEncoding = enc;
   
       }
  
  
  

Reply via email to