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