You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by la...@apache.org on 2002/01/08 01:48:20 UTC

cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/server Http10Interceptor.java

larryi      02/01/07 16:48:20

  Modified:    src/share/org/apache/tomcat/modules/server
                        Http10Interceptor.java
  Log:
  Added a delaySocketClose attribute that when true, executes a
  Thread.sleep(0)  to force a thread switch just prior to closing the socket.
  This was needed by Cactus to avoid "Socket reset by peer" errors on a
  high powered Windows XP system.
  
  Also added an setSoLinger(100) to help ensure the output is delivered.
  
  Revision  Changes    Path
  1.29      +17 -0     jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Http10Interceptor.java
  
  Index: Http10Interceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Http10Interceptor.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- Http10Interceptor.java	7 Dec 2001 04:38:26 -0000	1.28
  +++ Http10Interceptor.java	8 Jan 2002 00:48:19 -0000	1.29
  @@ -100,9 +100,11 @@
   {
       private int	timeout = 300000;	// 5 minutes as in Apache HTTPD server
       private String reportedname;
  +    private boolean delaySocketClose = false;
   
       public Http10Interceptor() {
   	super();
  +        super.setSoLinger( 100 );
   	// defaults:
   	this.setPort( 8080 );
       }
  @@ -120,6 +122,11 @@
       public void setReportedname( String reportedName) {
       reportedname = reportedName;
       }
  +
  +    public void setDelaySocketClose(boolean b) {
  +        delaySocketClose=b;
  +    }
  +
       // -------------------- Handler implementation --------------------
       public void setServer( Object o ) {
   	this.cm=(ContextManager)o;
  @@ -197,6 +204,16 @@
   	    log( "Error reading request, ignored", e, Log.ERROR);
   	} 
   	finally {
  +            // When running tests against Tomcat on the same
  +            // system, we may need to force a thread switch
  +            // before closing the socket to give the other
  +            // end of the connection a chance to run
  +            if( delaySocketClose ) {
  +                try {
  +                    Thread.sleep(0);
  +                } catch (InterruptedException ie) { /* ignore */ }
  +            }
  +
   	    // recycle kernel sockets ASAP
           // XXX didn't honor HTTP/1.0 KeepAlive, should be fixed
   	    try { if (socket != null) socket.close (); }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>