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 2020/04/22 11:48:57 UTC
[tomcat] branch 7.0.x updated: Use parameterized collection
constructors where possible
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 <la...@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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org