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...@apache.org on 2001/10/04 07:44:43 UTC

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

remm        01/10/03 22:44:43

  Modified:    catalina/src/share/org/apache/catalina/connector/http
                        HttpProcessor.java
  Log:
  - Add a flag to indicate that we'll finish the response. We don't if the problem
    is an EOFException while parsing the request header.
    Fixes bug 3949.
  
  Revision  Changes    Path
  1.37      +16 -8     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.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- HttpProcessor.java	2001/09/05 00:31:50	1.36
  +++ HttpProcessor.java	2001/10/04 05:44:43	1.37
  @@ -1,6 +1,6 @@
  -/* * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.36 2001/09/05 00:31:50 craigmcc Exp $
  - * $Revision: 1.36 $
  - * $Date: 2001/09/05 00:31:50 $
  +/* * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.37 2001/10/04 05:44:43 remm Exp $
  + * $Revision: 1.37 $
  + * $Date: 2001/10/04 05:44:43 $
    *
    * ====================================================================
    *
  @@ -106,7 +106,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.36 $ $Date: 2001/09/05 00:31:50 $
  + * @version $Revision: 1.37 $ $Date: 2001/10/04 05:44:43 $
    */
   
   final class HttpProcessor
  @@ -919,6 +919,7 @@
       private void process(Socket socket) {
   
           boolean ok = true;
  +        boolean finishResponse = true;
           SocketInputStream input = null;
           OutputStream output = null;
   
  @@ -935,6 +936,8 @@
   
           while (!stopped && ok && keepAlive) {
   
  +            finishResponse = true;
  +
               try {
                   request.setStream(input);
                   request.setResponse(response);
  @@ -966,7 +969,10 @@
                       }
                   }
               } catch (EOFException e) {
  +                // It's very likely to be a socket disconnect on either the 
  +                // client or the server
                   ok = false;
  +                finishResponse = false;
               } catch (ServletException e) {
                   ok = false;
                   try {
  @@ -1028,10 +1034,12 @@
   
               // Finish up the handling of the request
               try {
  -                response.finishResponse();
  -                request.finishRequest();
  -                if (output != null)
  -                    output.flush();
  +                if (finishResponse) {
  +                    response.finishResponse();
  +                    request.finishRequest();
  +                    if (output != null)
  +                        output.flush();
  +                }
               } catch (IOException e) {
                   ok = false;
               }