You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kk...@apache.org on 2014/06/17 21:19:21 UTC

svn commit: r1603266 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AbstractEndpoint.java AprEndpoint.java JIoEndpoint.java Nio2Endpoint.java

Author: kkolinko
Date: Tue Jun 17 19:19:20 2014
New Revision: 1603266

URL: http://svn.apache.org/r1603266
Log:
Followup to r1601583:
Use Collections.newSetFromMap to convert ConcurrentHashMap into a Set.

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java

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=1603266&r1=1603265&r2=1603266&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Tue Jun 17 19:19:20 2014
@@ -21,8 +21,10 @@ import java.io.OutputStreamWriter;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.Set;
 import java.util.StringTokenizer;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Executor;
@@ -122,9 +124,7 @@ public abstract class AbstractEndpoint<S
                     // Ignore
                 }
                 long now = System.currentTimeMillis();
-                Iterator<SocketWrapper<S>> sockets = waitingRequests.keySet().iterator();
-                while (sockets.hasNext()) {
-                    SocketWrapper<S> socket = sockets.next();
+                for (SocketWrapper<S> socket : waitingRequests) {
                     long access = socket.getLastAccess();
                     if (socket.getTimeout() > 0 && (now - access) > socket.getTimeout()) {
                         processSocket(socket, SocketStatus.TIMEOUT, true);
@@ -1026,8 +1026,9 @@ public abstract class AbstractEndpoint<S
         }
     }
 
-    protected ConcurrentHashMap<SocketWrapper<S>, SocketWrapper<S>> waitingRequests =
-            new ConcurrentHashMap<>();
+
+    protected final Set<SocketWrapper<S>> waitingRequests = Collections
+            .newSetFromMap(new ConcurrentHashMap<SocketWrapper<S>, Boolean>());
 
 
     /**

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=1603266&r1=1603265&r2=1603266&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Tue Jun 17 19:19:20 2014
@@ -870,7 +870,7 @@ public class AprEndpoint extends Abstrac
             // result of calling AsyncContext.dispatch() from a non-container
             // thread
             synchronized (socket) {
-                if (waitingRequests.remove(socket) != null) {
+                if (waitingRequests.remove(socket)) {
                     SocketProcessor proc = new SocketProcessor(socket, status);
                     Executor executor = getExecutor();
                     if (dispatch && executor != null) {
@@ -2324,7 +2324,7 @@ public class AprEndpoint extends Abstrac
                     } else if (state == Handler.SocketState.LONG) {
                         socket.access();
                         if (socket.isAsync()) {
-                            waitingRequests.put(socket, socket);
+                            waitingRequests.add(socket);
                         }
                     }
                 }
@@ -2386,7 +2386,7 @@ public class AprEndpoint extends Abstrac
             } else if (state == Handler.SocketState.LONG) {
                 socket.access();
                 if (socket.isAsync()) {
-                    waitingRequests.put(socket, socket);
+                    waitingRequests.add(socket);
                 }
             } else if (state == Handler.SocketState.ASYNC_END) {
                 socket.access();

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java?rev=1603266&r1=1603265&r2=1603266&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java Tue Jun 17 19:19:20 2014
@@ -298,7 +298,7 @@ public class JIoEndpoint extends Abstrac
                         launch = true;
                     } else if (state == SocketState.LONG) {
                         socket.access();
-                        waitingRequests.put(socket, socket);
+                        waitingRequests.add(socket);
                     }
                 } finally {
                     if (launch) {
@@ -514,7 +514,7 @@ public class JIoEndpoint extends Abstrac
             // result of calling AsyncContext.dispatch() from a non-container
             // thread
             synchronized (socket) {
-                if (waitingRequests.remove(socket) != null) {
+                if (waitingRequests.remove(socket)) {
                     SocketProcessor proc = new SocketProcessor(socket,status);
                     Executor executor = getExecutor();
                     if (dispatch && executor != null) {

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=1603266&r1=1603265&r2=1603266&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Tue Jun 17 19:19:20 2014
@@ -388,7 +388,7 @@ public class Nio2Endpoint extends Abstra
             @Override
             public void run() {
                 // Timeout any pending async request
-                for (SocketWrapper<Nio2Channel> socket : waitingRequests.keySet()) {
+                for (SocketWrapper<Nio2Channel> socket : waitingRequests) {
                     processSocket(socket, SocketStatus.TIMEOUT, false);
                 }
                 // Then close all active connections if any remains
@@ -849,11 +849,11 @@ public class Nio2Endpoint extends Abstra
     };
 
     public void addTimeout(SocketWrapper<Nio2Channel> socket) {
-        waitingRequests.put(socket, socket);
+        waitingRequests.add(socket);
     }
 
     public boolean removeTimeout(SocketWrapper<Nio2Channel> socket) {
-        return waitingRequests.remove(socket) != null;
+        return waitingRequests.remove(socket);
     }
 
     public static void startInline() {



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