Author: mturk
Date: Fri Sep  3 19:54:02 2010
New Revision: 992440

URL: http://svn.apache.org/viewvc?rev=992440&view=rev
Log:
Hard close the accepting socket if unlockAccept failed
Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=992440&r1=992439&r2=992440&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Sep  3 
19:54:02 2010
@@ -671,6 +671,7 @@ public class AprEndpoint extends Abstrac
             running = false;
             unlockAccept();
             for (int i = 0; i < acceptors.length; i++) {
+                int c = 0;
                 while (acceptors[i].isAlive()) {
                     try {
                         acceptors[i].interrupt();
@@ -678,6 +679,14 @@ public class AprEndpoint extends Abstrac
                     } catch (InterruptedException e) {
                         // Ignore
                     }
+                    if (c++ > 60) {
+                        // If the Acceptor is still running force
+                        // the hard socket close.
+                        if (serverSock != 0) {
+                            Socket.close(serverSock);
+                            serverSock = 0;
+                        }
+                    }
                 }
             }
             for (int i = 0; i < pollers.length; i++) {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to