marcsaeg    01/03/21 09:11:43

  Modified:    src/share/org/apache/tomcat/service Tag: tomcat_32
                        PoolTcpEndpoint.java
               src/share/org/apache/tomcat/service/http Tag: tomcat_32
                        HttpConnectionHandler.java
  Log:
  Moving the recently added socket timeout handling from PoolTcpEndpoint into
  the HTTP connection handler where it belongs (thanks Henri).  There
  are other users of the PoolTcpEndpoint code that will break if the
  socket read times out.
  
  PR:  1006
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.8.2.5   +3 -6      
jakarta-tomcat/src/share/org/apache/tomcat/service/Attic/PoolTcpEndpoint.java
  
  Index: PoolTcpEndpoint.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/Attic/PoolTcpEndpoint.java,v
  retrieving revision 1.8.2.4
  retrieving revision 1.8.2.5
  diff -u -r1.8.2.4 -r1.8.2.5
  --- PoolTcpEndpoint.java      2001/03/20 22:21:25     1.8.2.4
  +++ PoolTcpEndpoint.java      2001/03/21 17:11:29     1.8.2.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/Attic/PoolTcpEndpoint.java,v
 1.8.2.4 2001/03/20 22:21:25 marcsaeg Exp $
  - * $Revision: 1.8.2.4 $
  - * $Date: 2001/03/20 22:21:25 $
  + * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/Attic/PoolTcpEndpoint.java,v
 1.8.2.5 2001/03/21 17:11:29 marcsaeg Exp $
  + * $Revision: 1.8.2.5 $
  + * $Date: 2001/03/21 17:11:29 $
    *
    * ====================================================================
    *
  @@ -290,9 +290,6 @@
                                    accepted = null;
                                }
                        }
  -
  -                    if(accepted != null)
  -                        accepted.setSoTimeout(timeout);
               if( factory != null && accepted != null)
                   factory.initSocket( accepted );
                }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.26.2.4  +18 -3     
jakarta-tomcat/src/share/org/apache/tomcat/service/http/Attic/HttpConnectionHandler.java
  
  Index: HttpConnectionHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/http/Attic/HttpConnectionHandler.java,v
  retrieving revision 1.26.2.3
  retrieving revision 1.26.2.4
  diff -u -r1.26.2.3 -r1.26.2.4
  --- HttpConnectionHandler.java        2000/10/04 20:23:56     1.26.2.3
  +++ HttpConnectionHandler.java        2001/03/21 17:11:38     1.26.2.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/http/Attic/HttpConnectionHandler.java,v
 1.26.2.3 2000/10/04 20:23:56 costin Exp $
  - * $Revision: 1.26.2.3 $
  - * $Date: 2000/10/04 20:23:56 $
  + * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/http/Attic/HttpConnectionHandler.java,v
 1.26.2.4 2001/03/21 17:11:38 marcsaeg Exp $
  + * $Revision: 1.26.2.4 $
  + * $Date: 2001/03/21 17:11:38 $
    *
    * ====================================================================
    *
  @@ -77,6 +77,8 @@
   
   public class HttpConnectionHandler  implements  TcpConnectionHandler {
   
  +    private int timeout = 300000;  // 5 minutes
  +
       boolean secure=false;
       ContextManager contextM;
       
  @@ -139,6 +141,7 @@
                return;
            //      System.out.print("1");
            socket=connection.getSocket();
  +        socket.setSoTimeout(timeout);
            if (socket == null)
                return;
            //      System.out.print("2");
  @@ -230,6 +233,18 @@
            // SocketExceptions are normal
            contextM.doLog( "SocketException reading request, ignored", e, 
Logger.INFORMATION);
        }
  +    catch (java.io.InterruptedIOException ioe) {
  +        // InterruptedIOException are timeout and we must abort process
  +        ioe.printStackTrace();
  +        contextM.doLog( "Timeout while reading request, aborting", ioe, 
Logger.ERROR);
  +        try{
  +            if (socket != null)
  +                socket.close ();
  +        }
  +        catch (IOException e){
  +             /* ignore */
  +        }
  +    }        
        catch (java.io.IOException e) {
            // IOExceptions are normal 
            contextM.doLog( "IOException reading request, ignored", e, 
Logger.INFORMATION);
  
  
  

Reply via email to