You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mm...@apache.org on 2001/08/22 18:56:29 UTC
cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/startup StopTomcat.java
mmanders 01/08/22 09:56:28
Modified: src/share/org/apache/tomcat/startup StopTomcat.java
Log:
Added code to handle shutdown a little cleaner by flushing the output stream and wait for one second before trying to close the stream. This gives the backend a chance to read the stream cleanly before it goes away.
Revision Changes Path
1.11 +18 -0 jakarta-tomcat/src/share/org/apache/tomcat/startup/StopTomcat.java
Index: StopTomcat.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/startup/StopTomcat.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- StopTomcat.java 2001/08/21 05:35:26 1.10
+++ StopTomcat.java 2001/08/22 16:56:28 1.11
@@ -244,6 +244,15 @@
Socket socket = new Socket(address, portInt);
OutputStream os=socket.getOutputStream();
sendAjp12Stop( os, secret );
+
+ // Setting soLinger to 0 will help make sure the connection is
+ // closed on NetWare. If the other side closes the connection
+ // first, we get a SocketException so catch and ignore it
+ try {
+ socket.setSoLinger(true, 0);
+ }
+ catch (java.net.SocketException ignore) {
+ }
os.flush();
os.close();
// socket.close();
@@ -264,6 +273,15 @@
os.write( stopMessage );
if(secret!=null )
sendAjp12String( os, secret );
+
+ // flush the stream and give the backend a chance to read the request
+ // and shut down before we close the socket
+ os.flush();
+ try {
+ Thread.sleep(1000);
+ }
+ catch (InterruptedException ignore) {
+ }
}
/** Small AJP12 client util