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