craigmcc    01/04/30 21:19:28

  Modified:    tester/src/tester/org/apache/tester GetHeaders01.java
  Log:
  According to the HTTP/1.1 specification (Section 4.2), it is legal for a proxy 
server (and, thus, Apache's mod_proxy module) to combine header values for two 
occurrences of the same header like this:
  
          Accept-Language: en-us
          Accept:Language: en-gb
  
  into a single header:
  
          Accept-Language: en-us,en-gb
  
  Make this test succeed correctly even if this event occurs.
  
  Revision  Changes    Path
  1.2       +10 -3     
jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/GetHeaders01.java
  
  Index: GetHeaders01.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/GetHeaders01.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- GetHeaders01.java 2000/12/26 18:57:44     1.1
  +++ GetHeaders01.java 2001/05/01 04:19:26     1.2
  @@ -69,7 +69,7 @@
    * "Accept-Language" headers.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2000/12/26 18:57:44 $
  + * @version $Revision: 1.2 $ $Date: 2001/05/01 04:19:26 $
    */
   
   public class GetHeaders01 extends HttpServlet {
  @@ -82,8 +82,15 @@
           ArrayList values = new ArrayList();
           Enumeration headers = request.getHeaders("Accept-Language");
           while (headers.hasMoreElements()) {
  -            String header = (String) headers.nextElement();
  -            values.add(header);
  +            String header = (String) headers.nextElement() + ",";
  +            while (true) {
  +                int comma = header.indexOf(",");
  +                if (comma < 0)
  +                    break;
  +                String value = header.substring(0, comma).trim();
  +                values.add(value);
  +                header = header.substring(comma + 1).trim();
  +            }
           }
           if (values.size() != 2)
               writer.println("GetHeaders01 FAILED - Returned " + values.size()
  
  
  

Reply via email to