You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@locus.apache.org on 2000/10/10 19:09:27 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http HttpProcessor.java HttpRequestImpl.java HttpRequestStream.java

remm        00/10/10 10:09:26

  Modified:    catalina/src/share/org/apache/catalina/connector/http
                        HttpProcessor.java HttpRequestImpl.java
                        HttpRequestStream.java
  Log:
  - The HttpRequestStream now makes use of the new enhanced byte buffer
    reading of the underlying RequestStream. This should increase
    performance.
  - The connection will be closed if a request is sent without specifying a
    content length.
  
  Revision  Changes    Path
  1.9       +4 -6      jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java
  
  Index: HttpProcessor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- HttpProcessor.java	2000/09/15 20:03:39	1.8
  +++ HttpProcessor.java	2000/10/10 17:09:24	1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.8 2000/09/15 20:03:39 craigmcc Exp $
  - * $Revision: 1.8 $
  - * $Date: 2000/09/15 20:03:39 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.9 2000/10/10 17:09:24 remm Exp $
  + * $Revision: 1.9 $
  + * $Date: 2000/10/10 17:09:24 $
    *
    * ====================================================================
    *
  @@ -106,7 +106,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.8 $ $Date: 2000/09/15 20:03:39 $
  + * @version $Revision: 1.9 $ $Date: 2000/10/10 17:09:24 $
    */
   
   final class HttpProcessor
  @@ -733,8 +733,6 @@
           keepAlive = true;
   
           while (ok && keepAlive) {
  -            
  -            //System.out.println("Parsing request");
               
               try {
                   request.setStream(input);
  
  
  
  1.2       +5 -5      jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpRequestImpl.java
  
  Index: HttpRequestImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpRequestImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- HttpRequestImpl.java	2000/08/11 22:40:52	1.1
  +++ HttpRequestImpl.java	2000/10/10 17:09:24	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpRequestImpl.java,v 1.1 2000/08/11 22:40:52 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/08/11 22:40:52 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpRequestImpl.java,v 1.2 2000/10/10 17:09:24 remm Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/10/10 17:09:24 $
    *
    * ====================================================================
    *
  @@ -75,7 +75,7 @@
    * Implementation of <b>HttpRequest</b> specific to the HTTP connector.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2000/08/11 22:40:52 $
  + * @version $Revision: 1.2 $ $Date: 2000/10/10 17:09:24 $
    */
   
   final class HttpRequestImpl
  @@ -162,7 +162,7 @@
        */
       public ServletInputStream createInputStream() throws IOException {
   
  -	return (new HttpRequestStream(this));
  +	return (new HttpRequestStream(this, (HttpResponseImpl) response));
   
       }
   
  
  
  
  1.2       +17 -18    jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpRequestStream.java
  
  Index: HttpRequestStream.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpRequestStream.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- HttpRequestStream.java	2000/08/11 22:40:52	1.1
  +++ HttpRequestStream.java	2000/10/10 17:09:25	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpRequestStream.java,v 1.1 2000/08/11 22:40:52 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/08/11 22:40:52 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpRequestStream.java,v 1.2 2000/10/10 17:09:25 remm Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/10/10 17:09:25 $
    *
    * ====================================================================
    * 
  @@ -83,8 +83,10 @@
        * Construct a servlet input stream associated with the specified Request.
        *
        * @param request The associated request
  +     * @param response The associated response
        */
  -    public HttpRequestStream(HttpRequestImpl request) {
  +    public HttpRequestStream(HttpRequestImpl request, 
  +                             HttpResponseImpl response) {
   
   	super(request);
           String transferEncoding = request.getHeader("Transfer-Encoding");
  @@ -92,6 +94,11 @@
           chunk = ((transferEncoding != null) 
                    && (transferEncoding.indexOf("chunked") != -1));
           
  +        if ((!chunk) && (length == -1)) {
  +            // Ask for connection close
  +            response.addHeader("Connection", "close");
  +        }
  +
       }
       
       
  @@ -224,8 +231,8 @@
                       
                       while (nbRead < chunkLength) {
                           currentRead = 
  -                            stream.read(chunkBuffer, nbRead, 
  -                                        chunkLength - nbRead);
  +                            super.read(chunkBuffer, nbRead, 
  +                                       chunkLength - nbRead);
                           if (currentRead == -1)
                               throw new IOException
                                   (sm.getString("requestStream.read.error"));
  @@ -233,8 +240,8 @@
                       }
                       
                       // Skipping the CRLF
  -                    stream.read();
  -                    stream.read();
  +                    super.read();
  +                    super.read();
                       
                   }
                   
  @@ -243,16 +250,8 @@
               return (chunkBuffer[chunkPos++]);
               
           } else {
  -            
  -            // Have we read the specified content length already?
  -            if ((length >= 0) && (count >= length))
  -                return (-1);	// End of file indicator
               
  -            // Read and count the next byte, then return it
  -            int b = stream.read();
  -            if (b >= 0)
  -                count++;
  -            return (b);
  +            return (super.read());
               
           }
           
  @@ -277,7 +276,7 @@
           
   	StringBuffer sb = new StringBuffer();
   	while (true) {
  -	    int ch = stream.read();
  +	    int ch = super.read();
   	    if (ch < 0) {
   		if (sb.length() == 0) {
   		    return (null);