You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2022/10/05 16:50:47 UTC
[tomcat] branch main updated: Refactor. Use Deque and ArrayDeque rather than LinkedList
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new bb95898255 Refactor. Use Deque and ArrayDeque rather than LinkedList
bb95898255 is described below
commit bb9589825578820abc08c65a1b1dff5a72c815b9
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Oct 5 17:50:37 2022 +0100
Refactor. Use Deque and ArrayDeque rather than LinkedList
---
java/org/apache/catalina/valves/RemoteIpValve.java | 6 +++---
java/org/apache/jasper/compiler/PageInfo.java | 13 +++++++------
java/org/apache/tomcat/util/scan/StandardJarScanner.java | 4 ++--
.../WEB-INF/classes/websocket/drawboard/Client.java | 6 +++---
4 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/java/org/apache/catalina/valves/RemoteIpValve.java b/java/org/apache/catalina/valves/RemoteIpValve.java
index 7320acea3e..4fdf62ef0c 100644
--- a/java/org/apache/catalina/valves/RemoteIpValve.java
+++ b/java/org/apache/catalina/valves/RemoteIpValve.java
@@ -19,9 +19,9 @@ package org.apache.catalina.valves;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
+import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Enumeration;
-import java.util.LinkedList;
import java.util.regex.Pattern;
import jakarta.servlet.ServletException;
@@ -598,7 +598,7 @@ public class RemoteIpValve extends ValveBase {
if (isInternal || (trustedProxies != null &&
trustedProxies.matcher(originalRemoteAddr).matches())) {
String remoteIp = null;
- Deque<String> proxiesHeaderValue = new LinkedList<>();
+ Deque<String> proxiesHeaderValue = new ArrayDeque<>();
StringBuilder concatRemoteIpHeaderValue = new StringBuilder();
for (Enumeration<String> e = request.getHeaders(remoteIpHeader); e.hasMoreElements();) {
@@ -629,7 +629,7 @@ public class RemoteIpValve extends ValveBase {
}
}
// continue to loop on remoteIpHeaderValue to build the new value of the remoteIpHeader
- LinkedList<String> newRemoteIpHeaderValue = new LinkedList<>();
+ Deque<String> newRemoteIpHeaderValue = new ArrayDeque<>();
for (; idx >= 0; idx--) {
String currentRemoteIp = remoteIpHeaderValue[idx];
newRemoteIpHeaderValue.addFirst(currentRemoteIp);
diff --git a/java/org/apache/jasper/compiler/PageInfo.java b/java/org/apache/jasper/compiler/PageInfo.java
index f4d7383a23..94b3a1db5f 100644
--- a/java/org/apache/jasper/compiler/PageInfo.java
+++ b/java/org/apache/jasper/compiler/PageInfo.java
@@ -16,11 +16,12 @@
*/
package org.apache.jasper.compiler;
+import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Deque;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -47,7 +48,7 @@ class PageInfo {
private final Set<String> varInfoNames;
private final HashMap<String,TagLibraryInfo> taglibsMap;
private final HashMap<String, String> jspPrefixMapper;
- private final HashMap<String, LinkedList<String>> xmlPrefixMapper;
+ private final HashMap<String, Deque<String>> xmlPrefixMapper;
private final HashMap<String, Mark> nonCustomTagPrefixMap;
private final String jspFile;
private static final String defaultLanguage = "java";
@@ -337,9 +338,9 @@ class PageInfo {
* @param uri The URI to be pushed onto the stack
*/
public void pushPrefixMapping(String prefix, String uri) {
- LinkedList<String> stack = xmlPrefixMapper.get(prefix);
+ Deque<String> stack = xmlPrefixMapper.get(prefix);
if (stack == null) {
- stack = new LinkedList<>();
+ stack = new ArrayDeque<>();
xmlPrefixMapper.put(prefix, stack);
}
stack.addFirst(uri);
@@ -352,7 +353,7 @@ class PageInfo {
* @param prefix The prefix whose stack of URIs is to be popped
*/
public void popPrefixMapping(String prefix) {
- LinkedList<String> stack = xmlPrefixMapper.get(prefix);
+ Deque<String> stack = xmlPrefixMapper.get(prefix);
stack.removeFirst();
}
@@ -367,7 +368,7 @@ class PageInfo {
String uri = null;
- LinkedList<String> stack = xmlPrefixMapper.get(prefix);
+ Deque<String> stack = xmlPrefixMapper.get(prefix);
if (stack == null || stack.size() == 0) {
uri = jspPrefixMapper.get(prefix);
} else {
diff --git a/java/org/apache/tomcat/util/scan/StandardJarScanner.java b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
index a71e8c3e16..99f8cf8484 100644
--- a/java/org/apache/tomcat/util/scan/StandardJarScanner.java
+++ b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
@@ -23,11 +23,11 @@ import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import java.net.URLClassLoader;
+import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Collections;
import java.util.Deque;
import java.util.HashSet;
-import java.util.LinkedList;
import java.util.Optional;
import java.util.Set;
import java.util.jar.Attributes;
@@ -257,7 +257,7 @@ public class StandardJarScanner implements JarScanner {
// Use a Deque so URLs can be removed as they are processed
// and new URLs can be added as they are discovered during
// processing.
- Deque<URL> classPathUrlsToProcess = new LinkedList<>();
+ Deque<URL> classPathUrlsToProcess = new ArrayDeque<>();
while (classLoader != null && classLoader != stopLoader) {
if (classLoader instanceof URLClassLoader) {
diff --git a/webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java b/webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java
index b4c8da77ec..a99aad0805 100644
--- a/webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java
+++ b/webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java
@@ -17,7 +17,8 @@
package websocket.drawboard;
import java.io.IOException;
-import java.util.LinkedList;
+import java.util.ArrayDeque;
+import java.util.Deque;
import jakarta.websocket.CloseReason;
import jakarta.websocket.CloseReason.CloseCodes;
@@ -43,8 +44,7 @@ public class Client {
* Contains the messages which are buffered until the previous
* send operation has finished.
*/
- private final LinkedList<AbstractWebsocketMessage> messagesToSend =
- new LinkedList<>();
+ private final Deque<AbstractWebsocketMessage> messagesToSend = new ArrayDeque<>();
/**
* If this client is currently sending a messages asynchronously.
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org