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

cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/service TcpEndpoint.java

costin      00/02/08 17:18:39

  Modified:    src/share/org/apache/tomcat/service TcpEndpoint.java
  Log:
  Fix server shutdown.
  Thanks Ariel Markel, I'll remove System.exit() in a separate putback.
  
  Submitted by: Arieh Markel <Ar...@Central.Sun.COM>
  
  Revision  Changes    Path
  1.7       +26 -8     jakarta-tomcat/src/share/org/apache/tomcat/service/TcpEndpoint.java
  
  Index: TcpEndpoint.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/TcpEndpoint.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TcpEndpoint.java	2000/01/15 23:30:23	1.6
  +++ TcpEndpoint.java	2000/02/09 01:18:39	1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/TcpEndpoint.java,v 1.6 2000/01/15 23:30:23 costin Exp $
  - * $Revision: 1.6 $
  - * $Date: 2000/01/15 23:30:23 $
  + * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/TcpEndpoint.java,v 1.7 2000/02/09 01:18:39 costin Exp $
  + * $Revision: 1.7 $
  + * $Date: 2000/02/09 01:18:39 $
    *
    * ====================================================================
    *
  @@ -217,7 +217,12 @@
       
       public void stopEndpoint() {
   	running=false;
  -	// serverSocket.close(); XXX?
  +	try {
  +	    serverSocket.close(); // XXX?
  +	} catch(Exception e) {
  +	}
  +	serverSocket = null;
  +
       }
   
   
  @@ -244,11 +249,16 @@
       
       void acceptConnections() {
   	try {
  -	    Socket socket = serverSocket.accept();
  -	    if (running == false) {
  -		socket.close();  // rude, but unlikely!
  +	    if (running == false)
  +		return;
  +
  +	    if( null!= serverSocket) {
  +		Socket socket = serverSocket.accept();
  +		if (running == false) {
  +		    socket.close();  // rude, but unlikely!
  +		}
  +		processSocket(socket);
   	    }
  -	    processSocket(socket);
   	} catch (InterruptedIOException iioe) {
   	    // normal part -- should happen regularly so
   	    // that the endpoint can release if the server
  @@ -257,6 +267,14 @@
   	    // way for the socket to timeout without
   	    // tripping an exception. Exceptions are so
   	    // 'spensive.
  +	} catch (SocketException e) {
  +	    if (running != false) {
  +		running = false;
  +		String msg = sm.getString("endpoint.err.fatal",
  +					  serverSocket, e);
  +		e.printStackTrace(); // something very wrong happened - better know what
  +		System.err.println(msg);
  +	    }
   	} catch (Exception e) {
   	    running = false;
   	    String msg = sm.getString("endpoint.err.fatal",