Author: markt
Date: Sun Nov  8 16:52:47 2015
New Revision: 1713249

URL: http://svn.apache.org/viewvc?rev=1713249&view=rev
Log:
Refactor closing of open NIO2 sockets so endpoint specific handlers are
no longer required.

Modified:
    tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java
    tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java

Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1713249&r1=1713248&r2=1713249&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Sun Nov  8 
16:52:47 2015
@@ -882,6 +882,12 @@ public abstract class AbstractProtocol<S
         }
 
 
+        @Override
+        public Set<S> getOpenSockets() {
+            return connections.keySet();
+        }
+
+
         /**
          * Expected to be used by the handler once the processor is no longer
          * required.

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java?rev=1713249&r1=1713248&r2=1713249&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java Sun Nov  8 
16:52:47 2015
@@ -67,13 +67,5 @@ public class AjpNio2Protocol extends Abs
         protected Log getLog() {
             return log;
         }
-
-
-        @Override
-        public void closeAll() {
-            for (Nio2Channel channel : connections.keySet()) {
-                ((Nio2Endpoint) 
getProtocol().getEndpoint()).closeSocket(channel.getSocket());
-            }
-        }
     }
 }

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java?rev=1713249&r1=1713248&r2=1713249&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java Sun Nov  
8 16:52:47 2015
@@ -69,12 +69,5 @@ public class Http11Nio2Protocol extends
         protected Log getLog() {
             return log;
         }
-
-        @Override
-        public void closeAll() {
-            for (Nio2Channel channel : connections.keySet()) {
-                ((Nio2Endpoint) 
getProtocol().getEndpoint()).closeSocket(channel.getSocket());
-            }
-        }
     }
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1713249&r1=1713248&r2=1713249&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Sun Nov  
8 16:52:47 2015
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Executor;
 import java.util.concurrent.TimeUnit;
@@ -82,6 +83,14 @@ public abstract class AbstractEndpoint<S
 
 
         /**
+         * Obtain the currently open sockets.
+         *
+         * @return The sockets for which the handler is tracking a currently
+         *         open connection
+         */
+        public Set<S> getOpenSockets();
+
+        /**
          * Release any resources associated with the given SocketWrapper.
          *
          * @param socketWrapper The socketWrapper to release resources for

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1713249&r1=1713248&r2=1713249&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Sun Nov  8 
16:52:47 2015
@@ -254,7 +254,9 @@ public class Nio2Endpoint extends Abstra
                 public void run() {
                     // Then close all active connections if any remain
                     try {
-                        handler.closeAll();
+                        for (Nio2Channel channel : handler.getOpenSockets()) {
+                            closeSocket(channel.getSocket());
+                        }
                     } catch (Throwable t) {
                         ExceptionUtils.handleThrowable(t);
                     } finally {
@@ -1596,7 +1598,6 @@ public class Nio2Endpoint extends Abstra
      * thread local fields.
      */
     public interface Handler extends AbstractEndpoint.Handler<Nio2Channel> {
-        public void closeAll();
     }
 
     public static void startInline() {



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

Reply via email to