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: [email protected]
For additional commands, e-mail: [email protected]