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