This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/7.0.x by this push:
     new c9a4561  Use parameterized collection constructors where possible
c9a4561 is described below

commit c9a456160e22d03e66b9528e2a423f499260d804
Author: Lars Grefer <lars.gre...@materna.de>
AuthorDate: Tue Apr 7 17:32:50 2020 +0200

    Use parameterized collection constructors where possible
    
    This allows collections like ArrayList and HashSet to initialize their
    backing arrays with the correct size.
---
 java/javax/servlet/ServletSecurityElement.java              |  7 ++-----
 java/org/apache/catalina/connector/Request.java             |  3 +--
 java/org/apache/catalina/core/ApplicationContext.java       |  6 ++----
 java/org/apache/catalina/core/AsyncContextImpl.java         | 13 ++++---------
 java/org/apache/catalina/ha/context/ReplicatedContext.java  |  3 +--
 java/org/apache/catalina/manager/HTMLManagerServlet.java    |  3 +--
 java/org/apache/catalina/servlets/CGIServlet.java           |  4 +---
 java/org/apache/catalina/session/ManagerBase.java           | 12 ++++++------
 java/org/apache/catalina/session/PersistentManagerBase.java |  3 +--
 java/org/apache/catalina/session/StandardSession.java       |  3 +--
 java/org/apache/catalina/startup/HostConfig.java            |  3 +--
 java/org/apache/coyote/http11/AbstractHttp11Protocol.java   |  3 +--
 .../apache/tomcat/websocket/BackgroundProcessManager.java   |  4 ++--
 test/org/apache/catalina/deploy/TestWebXmlOrdering.java     |  6 ++----
 .../apache/catalina/servlets/ServletOptionsBaseTest.java    |  3 +--
 test/org/apache/catalina/startup/TestTomcatNoServer.java    |  9 +++------
 test/org/apache/catalina/valves/TestRemoteIpValve.java      |  6 ++----
 test/org/apache/tomcat/util/buf/TestCharsetCache.java       |  6 ++----
 webapps/docs/changelog.xml                                  |  4 ++++
 19 files changed, 38 insertions(+), 63 deletions(-)

diff --git a/java/javax/servlet/ServletSecurityElement.java 
b/java/javax/servlet/ServletSecurityElement.java
index caa9a27..278321a 100644
--- a/java/javax/servlet/ServletSecurityElement.java
+++ b/java/javax/servlet/ServletSecurityElement.java
@@ -108,15 +108,12 @@ public class ServletSecurityElement extends 
HttpConstraintElement {
     }
 
     public Collection<HttpMethodConstraintElement> getHttpMethodConstraints() {
-        Collection<HttpMethodConstraintElement> result =
-                new HashSet<HttpMethodConstraintElement>();
-        result.addAll(methodConstraints.values());
+        Collection<HttpMethodConstraintElement> result = new 
HashSet<HttpMethodConstraintElement>(methodConstraints.values());
         return result;
     }
 
     public Collection<String> getMethodNames() {
-        Collection<String> result = new HashSet<String>();
-        result.addAll(methodConstraints.keySet());
+        Collection<String> result = new 
HashSet<String>(methodConstraints.keySet());
         return result;
     }
 
diff --git a/java/org/apache/catalina/connector/Request.java 
b/java/org/apache/catalina/connector/Request.java
index 611d2da..59f91f7 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -1065,8 +1065,7 @@ public class Request implements HttpServletRequest {
         }
         // Take a copy to prevent ConcurrentModificationExceptions if used to
         // remove attributes
-        Set<String> names = new HashSet<String>();
-        names.addAll(attributes.keySet());
+        Set<String> names = new HashSet<String>(attributes.keySet());
         return Collections.enumeration(names);
     }
 
diff --git a/java/org/apache/catalina/core/ApplicationContext.java 
b/java/org/apache/catalina/core/ApplicationContext.java
index e76c54c..5a6acb6 100644
--- a/java/org/apache/catalina/core/ApplicationContext.java
+++ b/java/org/apache/catalina/core/ApplicationContext.java
@@ -231,8 +231,7 @@ public class ApplicationContext implements ServletContext {
 
     @Override
     public Enumeration<String> getAttributeNames() {
-        Set<String> names = new HashSet<String>();
-        names.addAll(attributes.keySet());
+        Set<String> names = new HashSet<String>(attributes.keySet());
         return Collections.enumeration(names);
     }
 
@@ -329,8 +328,7 @@ public class ApplicationContext implements ServletContext {
 
     @Override
     public Enumeration<String> getInitParameterNames() {
-        Set<String> names = new HashSet<String>();
-        names.addAll(parameters.keySet());
+        Set<String> names = new HashSet<String>(parameters.keySet());
         // Special handling for XML settings as these attributes will always be
         // available if they have been set on the context
         if (context.getTldValidation()) {
diff --git a/java/org/apache/catalina/core/AsyncContextImpl.java 
b/java/org/apache/catalina/core/AsyncContextImpl.java
index f57f7d1..a92a629 100644
--- a/java/org/apache/catalina/core/AsyncContextImpl.java
+++ b/java/org/apache/catalina/core/AsyncContextImpl.java
@@ -101,8 +101,7 @@ public class AsyncContextImpl implements AsyncContext, 
AsyncContextCallback {
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("asyncContextImpl.fireOnComplete"));
         }
-        List<AsyncListenerWrapper> listenersCopy = new 
ArrayList<AsyncListenerWrapper>();
-        listenersCopy.addAll(listeners);
+        List<AsyncListenerWrapper> listenersCopy = new 
ArrayList<AsyncListenerWrapper>(listeners);
 
         ClassLoader oldCL;
         if (Globals.IS_SECURITY_ENABLED) {
@@ -156,9 +155,7 @@ public class AsyncContextImpl implements AsyncContext, 
AsyncContextCallback {
             ClassLoader newCL = 
request.getContext().getLoader().getClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(newCL);
-                List<AsyncListenerWrapper> listenersCopy =
-                    new ArrayList<AsyncListenerWrapper>();
-                listenersCopy.addAll(listeners);
+                List<AsyncListenerWrapper> listenersCopy = new 
ArrayList<AsyncListenerWrapper>(listeners);
                 for (AsyncListenerWrapper listener : listenersCopy) {
                     try {
                         listener.fireOnTimeout(event);
@@ -368,8 +365,7 @@ public class AsyncContextImpl implements AsyncContext, 
AsyncContextCallback {
             this.hasOriginalRequestAndResponse = originalRequestResponse;
             this.event = new AsyncEvent(this, request, response);
 
-            List<AsyncListenerWrapper> listenersCopy = new 
ArrayList<AsyncListenerWrapper>();
-            listenersCopy.addAll(listeners);
+            List<AsyncListenerWrapper> listenersCopy = new 
ArrayList<AsyncListenerWrapper>(listeners);
             listeners.clear();
             if (log.isDebugEnabled()) {
                 log.debug(sm.getString("asyncContextImpl.fireOnStartAsync"));
@@ -453,8 +449,7 @@ public class AsyncContextImpl implements AsyncContext, 
AsyncContextCallback {
             }
             AsyncEvent errorEvent = new AsyncEvent(event.getAsyncContext(),
                     event.getSuppliedRequest(), event.getSuppliedResponse(), 
t);
-            List<AsyncListenerWrapper> listenersCopy = new 
ArrayList<AsyncListenerWrapper>();
-            listenersCopy.addAll(listeners);
+            List<AsyncListenerWrapper> listenersCopy = new 
ArrayList<AsyncListenerWrapper>(listeners);
             for (AsyncListenerWrapper listener : listenersCopy) {
                 try {
                     listener.fireOnError(errorEvent);
diff --git a/java/org/apache/catalina/ha/context/ReplicatedContext.java 
b/java/org/apache/catalina/ha/context/ReplicatedContext.java
index 9295b38..bbbe0d3 100644
--- a/java/org/apache/catalina/ha/context/ReplicatedContext.java
+++ b/java/org/apache/catalina/ha/context/ReplicatedContext.java
@@ -187,8 +187,7 @@ public class ReplicatedContext extends StandardContext 
implements MapOwner {
         @SuppressWarnings("unchecked")
         @Override
         public Enumeration<String> getAttributeNames() {
-            Set<String> names = new HashSet<String>();
-            names.addAll(attributes.keySet());
+            Set<String> names = new HashSet<String>(attributes.keySet());
 
             return new MultiEnumeration<String>(new Enumeration[] {
                     super.getAttributeNames(),
diff --git a/java/org/apache/catalina/manager/HTMLManagerServlet.java 
b/java/org/apache/catalina/manager/HTMLManagerServlet.java
index 77e6e4f..35bf4b1 100644
--- a/java/org/apache/catalina/manager/HTMLManagerServlet.java
+++ b/java/org/apache/catalina/manager/HTMLManagerServlet.java
@@ -844,8 +844,7 @@ public final class HTMLManagerServlet extends 
ManagerServlet {
                     RequestUtil.filter(cn.getDisplayName())));
         }
         Manager manager = ctxt.getManager();
-        List<Session> sessions = new ArrayList<Session>();
-        sessions.addAll(Arrays.asList(manager.findSessions()));
+        List<Session> sessions = new 
ArrayList<Session>(Arrays.asList(manager.findSessions()));
         if (manager instanceof DistributedManager && showProxySessions) {
             // Add dummy proxy sessions
             Set<String> sessionIds =
diff --git a/java/org/apache/catalina/servlets/CGIServlet.java 
b/java/org/apache/catalina/servlets/CGIServlet.java
index 691f5ae..2bbc6ea 100644
--- a/java/org/apache/catalina/servlets/CGIServlet.java
+++ b/java/org/apache/catalina/servlets/CGIServlet.java
@@ -1004,10 +1004,8 @@ public final class CGIServlet extends HttpServlet {
              * (apologies to Marv Albert regarding MJ)
              */
 
-            Hashtable<String,String> envp = new Hashtable<String,String>();
-
             // Add the shell environment variables (if any)
-            envp.putAll(shellEnv);
+            Hashtable<String, String> envp = new 
Hashtable<String,String>(shellEnv);
 
             // Add the CGI environment variables
             String sPathInfoOrig = null;
diff --git a/java/org/apache/catalina/session/ManagerBase.java 
b/java/org/apache/catalina/session/ManagerBase.java
index af0add0..b8ccf31 100644
--- a/java/org/apache/catalina/session/ManagerBase.java
+++ b/java/org/apache/catalina/session/ManagerBase.java
@@ -1132,9 +1132,9 @@ public abstract class ManagerBase extends 
LifecycleMBeanBase implements Manager
     @Override
     public int getSessionAverageAliveTime() {
         // Copy current stats
-        List<SessionTiming> copy = new ArrayList<SessionTiming>();
+        List<SessionTiming> copy;
         synchronized (sessionExpirationTiming) {
-            copy.addAll(sessionExpirationTiming);
+            copy = new ArrayList<SessionTiming>(sessionExpirationTiming);
         }
 
         // Init
@@ -1163,9 +1163,9 @@ public abstract class ManagerBase extends 
LifecycleMBeanBase implements Manager
     @Override
     public int getSessionCreateRate() {
         // Copy current stats
-        List<SessionTiming> copy = new ArrayList<SessionTiming>();
+        List<SessionTiming> copy;
         synchronized (sessionCreationTiming) {
-            copy.addAll(sessionCreationTiming);
+            copy = new ArrayList<SessionTiming>(sessionCreationTiming);
         }
 
         return calculateRate(copy);
@@ -1183,9 +1183,9 @@ public abstract class ManagerBase extends 
LifecycleMBeanBase implements Manager
     @Override
     public int getSessionExpireRate() {
         // Copy current stats
-        List<SessionTiming> copy = new ArrayList<SessionTiming>();
+        List<SessionTiming> copy;
         synchronized (sessionExpirationTiming) {
-            copy.addAll(sessionExpirationTiming);
+            copy = new ArrayList<SessionTiming>(sessionExpirationTiming);
         }
 
         return calculateRate(copy);
diff --git a/java/org/apache/catalina/session/PersistentManagerBase.java 
b/java/org/apache/catalina/session/PersistentManagerBase.java
index 84137c6..77970d2 100644
--- a/java/org/apache/catalina/session/PersistentManagerBase.java
+++ b/java/org/apache/catalina/session/PersistentManagerBase.java
@@ -674,9 +674,8 @@ public abstract class PersistentManagerBase extends 
ManagerBase
 
     @Override
     public Set<String> getSessionIdsFull() {
-        Set<String> sessionIds = new HashSet<String>();
         // In memory session ID list
-        sessionIds.addAll(sessions.keySet());
+        Set<String> sessionIds = new HashSet<String>(sessions.keySet());
         // Store session ID list
         String[] storeKeys;
         try {
diff --git a/java/org/apache/catalina/session/StandardSession.java 
b/java/org/apache/catalina/session/StandardSession.java
index a93d9fd..28fd3b9 100644
--- a/java/org/apache/catalina/session/StandardSession.java
+++ b/java/org/apache/catalina/session/StandardSession.java
@@ -1198,8 +1198,7 @@ public class StandardSession implements HttpSession, 
Session, Serializable {
             throw new IllegalStateException
                 (sm.getString("standardSession.getAttributeNames.ise"));
 
-        Set<String> names = new HashSet<String>();
-        names.addAll(attributes.keySet());
+        Set<String> names = new HashSet<String>(attributes.keySet());
         return Collections.enumeration(names);
     }
 
diff --git a/java/org/apache/catalina/startup/HostConfig.java 
b/java/org/apache/catalina/startup/HostConfig.java
index 0c66896..c63eaec 100644
--- a/java/org/apache/catalina/startup/HostConfig.java
+++ b/java/org/apache/catalina/startup/HostConfig.java
@@ -1824,8 +1824,7 @@ public class HostConfig
         }
 
         // Need ordered set of names
-        SortedSet<String> sortedAppNames = new TreeSet<String>();
-        sortedAppNames.addAll(deployed.keySet());
+        SortedSet<String> sortedAppNames = new 
TreeSet<String>(deployed.keySet());
 
         Iterator<String> iter = sortedAppNames.iterator();
 
diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java 
b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
index 632760c..9ff64c7 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
@@ -358,8 +358,7 @@ public abstract class AbstractHttp11Protocol<S> extends 
AbstractProtocol<S> {
     public void setAllowedTrailerHeaders(String commaSeparatedHeaders) {
         // Jump through some hoops so we don't end up with an empty set while
         // doing updates.
-        Set<String> toRemove = new HashSet<String>();
-        toRemove.addAll(allowedTrailerHeaders);
+        Set<String> toRemove = new HashSet<String>(allowedTrailerHeaders);
         if (commaSeparatedHeaders != null) {
             String[] headers = commaSeparatedHeaders.split(",");
             for (String header : headers) {
diff --git a/java/org/apache/tomcat/websocket/BackgroundProcessManager.java 
b/java/org/apache/tomcat/websocket/BackgroundProcessManager.java
index 53aed20..068086b 100644
--- a/java/org/apache/tomcat/websocket/BackgroundProcessManager.java
+++ b/java/org/apache/tomcat/websocket/BackgroundProcessManager.java
@@ -82,9 +82,9 @@ public class BackgroundProcessManager {
 
 
     private void process() {
-        Set<BackgroundProcess> currentProcesses = new 
HashSet<BackgroundProcess>();
+        Set<BackgroundProcess> currentProcesses;
         synchronized (processesLock) {
-            currentProcesses.addAll(processes);
+            currentProcesses = new HashSet<BackgroundProcess>(processes);
         }
         for (BackgroundProcess process : currentProcesses) {
             try {
diff --git a/test/org/apache/catalina/deploy/TestWebXmlOrdering.java 
b/test/org/apache/catalina/deploy/TestWebXmlOrdering.java
index 24a2118..ede56e5 100644
--- a/test/org/apache/catalina/deploy/TestWebXmlOrdering.java
+++ b/test/org/apache/catalina/deploy/TestWebXmlOrdering.java
@@ -204,8 +204,7 @@ public class TestWebXmlOrdering {
                         for (int m = 0; m < 2; m++) {
                             setUp();
                             runner.init();
-                            ArrayList<WebXml> source = new ArrayList<WebXml>();
-                            source.addAll(fragments.values());
+                            ArrayList<WebXml> source = new 
ArrayList<WebXml>(fragments.values());
                             Map<String,WebXml> input =
                                     new LinkedHashMap<String,WebXml>();
 
@@ -256,8 +255,7 @@ public class TestWebXmlOrdering {
     }
 
     private void populatePositions(Set<WebXml> ordered) {
-        List<WebXml> indexed = new ArrayList<WebXml>();
-        indexed.addAll(ordered);
+        List<WebXml> indexed = new ArrayList<WebXml>(ordered);
 
         posA = indexed.indexOf(a);
         posB = indexed.indexOf(b);
diff --git a/test/org/apache/catalina/servlets/ServletOptionsBaseTest.java 
b/test/org/apache/catalina/servlets/ServletOptionsBaseTest.java
index e121f37..ff87482 100644
--- a/test/org/apache/catalina/servlets/ServletOptionsBaseTest.java
+++ b/test/org/apache/catalina/servlets/ServletOptionsBaseTest.java
@@ -152,8 +152,7 @@ public abstract class ServletOptionsBaseTest extends 
TomcatBaseTest {
             for (int i = 0; i < values.length; i++) {
                 values[i] = values[i].trim();
             }
-            Set<String> allowed = new HashSet<String>();
-            allowed.addAll(Arrays.asList(values));
+            Set<String> allowed = new HashSet<String>(Arrays.asList(values));
 
             return allowed;
         }
diff --git a/test/org/apache/catalina/startup/TestTomcatNoServer.java 
b/test/org/apache/catalina/startup/TestTomcatNoServer.java
index 8981ce9..d2d61d9 100644
--- a/test/org/apache/catalina/startup/TestTomcatNoServer.java
+++ b/test/org/apache/catalina/startup/TestTomcatNoServer.java
@@ -61,12 +61,10 @@ public class TestTomcatNoServer {
 
         Map<String,String> webXmlMimeMappings = 
webXmlDefaultFragment.getMimeMappings();
 
-        Set<String> embeddedExtensions = new HashSet<String>();
-        embeddedExtensions.addAll(Arrays.asList(ctx.findMimeMappings()));
+        Set<String> embeddedExtensions = new 
HashSet<String>(Arrays.asList(ctx.findMimeMappings()));
 
         // Find entries present in conf/web.xml that are missing in embedded
-        Set<String> missingInEmbedded = new HashSet<String>();
-        missingInEmbedded.addAll(webXmlMimeMappings.keySet());
+        Set<String> missingInEmbedded = new 
HashSet<String>(webXmlMimeMappings.keySet());
         missingInEmbedded.removeAll(embeddedExtensions);
         if (missingInEmbedded.size() > 0) {
             for (String missingExtension : missingInEmbedded) {
@@ -77,8 +75,7 @@ public class TestTomcatNoServer {
         }
 
         // Find entries present in embedded that are missing in conf/web.xml
-        Set<String> missingInWebXml = new HashSet<String>();
-        missingInWebXml.addAll(embeddedExtensions);
+        Set<String> missingInWebXml = new HashSet<String>(embeddedExtensions);
         missingInWebXml.removeAll(webXmlMimeMappings.keySet());
         if (missingInWebXml.size() > 0) {
             for (String missingExtension : missingInWebXml) {
diff --git a/test/org/apache/catalina/valves/TestRemoteIpValve.java 
b/test/org/apache/catalina/valves/TestRemoteIpValve.java
index 033fa4e..4b70678 100644
--- a/test/org/apache/catalina/valves/TestRemoteIpValve.java
+++ b/test/org/apache/catalina/valves/TestRemoteIpValve.java
@@ -1056,10 +1056,8 @@ public class TestRemoteIpValve {
         }
         Assert.assertNotNull(actual);
         Assert.assertEquals(expected.length, actual.length);
-        List<String> e = new ArrayList<String>();
-        e.addAll(Arrays.asList(expected));
-        List<String> a = new ArrayList<String>();
-        a.addAll(Arrays.asList(actual));
+        List<String> e = new ArrayList<String>(Arrays.asList(expected));
+        List<String> a = new ArrayList<String>(Arrays.asList(actual));
 
         for (String entry : e) {
             Assert.assertTrue(a.remove(entry));
diff --git a/test/org/apache/tomcat/util/buf/TestCharsetCache.java 
b/test/org/apache/tomcat/util/buf/TestCharsetCache.java
index 4e1697e..43eb10f 100644
--- a/test/org/apache/tomcat/util/buf/TestCharsetCache.java
+++ b/test/org/apache/tomcat/util/buf/TestCharsetCache.java
@@ -33,10 +33,8 @@ public class TestCharsetCache {
     @Test
     public void testAllKnownCharsets() {
 
-        Set<String> known = new HashSet<String>();
-        known.addAll(Arrays.asList(CharsetCache.LAZY_CHARSETS));
-        Set<String> initial = new HashSet<String>();
-        initial.addAll(Arrays.asList(CharsetCache.INITIAL_CHARSETS));
+        Set<String> known = new 
HashSet<String>(Arrays.asList(CharsetCache.LAZY_CHARSETS));
+        Set<String> initial = new 
HashSet<String>(Arrays.asList(CharsetCache.INITIAL_CHARSETS));
 
         List<String> cacheMisses = new ArrayList<String>();
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 9bed6ec..93f1283 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -184,6 +184,10 @@
       <update>
         Update JUnit to version 4.13. (markt)
       </update>
+      <scode>
+        Refactor to use parameterized <code>Collection</code> constructors 
where
+        possible. Pull request provided by Lars Grefer. (markt)
+      </scode>
     </changelog>
   </subsection>
 </section>


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

Reply via email to