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