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 17:26:21 UTC
[tomcat] branch 9.0.x updated: Bulk operation can be used instead
of iteration
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new 1110f9c Bulk operation can be used instead of iteration
1110f9c is described below
commit 1110f9c86da107243595ea3f49e4d867572cc7db
Author: Lars Grefer <la...@materna.de>
AuthorDate: Tue Apr 7 18:04:47 2020 +0200
Bulk operation can be used instead of iteration
---
java/org/apache/catalina/core/ApplicationContext.java | 4 +---
java/org/apache/catalina/core/ApplicationFilterRegistration.java | 9 +++------
java/org/apache/catalina/core/ApplicationHttpRequest.java | 9 +++------
java/org/apache/catalina/core/ApplicationPushBuilder.java | 5 ++---
java/org/apache/catalina/core/StandardContext.java | 4 +---
java/org/apache/catalina/ha/session/BackupManager.java | 4 +---
java/org/apache/catalina/session/PersistentManagerBase.java | 5 ++---
java/org/apache/catalina/startup/ContextConfig.java | 4 +---
java/org/apache/catalina/webresources/StandardRoot.java | 5 ++---
java/org/apache/coyote/http2/StreamStateMachine.java | 5 ++---
java/org/apache/jasper/servlet/JspCServletContext.java | 4 +---
.../apache/tomcat/util/descriptor/web/SecurityConstraint.java | 8 ++------
java/org/apache/tomcat/util/digester/Digester.java | 5 ++---
java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java | 5 ++---
java/org/apache/tomcat/util/net/jsse/JSSESSLContext.java | 5 ++---
test/org/apache/catalina/users/MemoryUserDatabaseTests.java | 4 ++--
.../tomcat/util/descriptor/web/TestSecurityConstraint.java | 5 ++---
.../apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java | 9 +++------
test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java | 5 ++---
test/org/apache/tomcat/websocket/server/TestClose.java | 5 ++---
webapps/docs/changelog.xml | 4 ++++
21 files changed, 42 insertions(+), 71 deletions(-)
diff --git a/java/org/apache/catalina/core/ApplicationContext.java b/java/org/apache/catalina/core/ApplicationContext.java
index 56be0d8..1ee44df 100644
--- a/java/org/apache/catalina/core/ApplicationContext.java
+++ b/java/org/apache/catalina/core/ApplicationContext.java
@@ -1363,9 +1363,7 @@ public class ApplicationContext implements ServletContext {
// Create list of attributes to be removed
List<String> list = new ArrayList<>();
- for (String s : attributes.keySet()) {
- list.add(s);
- }
+ list.addAll(attributes.keySet());
// Remove application originated attributes
// (read only attributes will be left in place)
diff --git a/java/org/apache/catalina/core/ApplicationFilterRegistration.java b/java/org/apache/catalina/core/ApplicationFilterRegistration.java
index 518f130..7c6059b 100644
--- a/java/org/apache/catalina/core/ApplicationFilterRegistration.java
+++ b/java/org/apache/catalina/core/ApplicationFilterRegistration.java
@@ -17,6 +17,7 @@
package org.apache.catalina.core;
+import java.util.Arrays;
import java.util.Collection;
import java.util.EnumSet;
import java.util.HashSet;
@@ -119,9 +120,7 @@ public class ApplicationFilterRegistration
for (FilterMap filterMap : filterMaps) {
if (filterMap.getFilterName().equals(filterDef.getFilterName())) {
- for (String servletName : filterMap.getServletNames()) {
- result.add(servletName);
- }
+ result.addAll(Arrays.asList(filterMap.getServletNames()));
}
}
return result;
@@ -135,9 +134,7 @@ public class ApplicationFilterRegistration
for (FilterMap filterMap : filterMaps) {
if (filterMap.getFilterName().equals(filterDef.getFilterName())) {
- for (String urlPattern : filterMap.getURLPatterns()) {
- result.add(urlPattern);
- }
+ result.addAll(Arrays.asList(filterMap.getURLPatterns()));
}
}
return result;
diff --git a/java/org/apache/catalina/core/ApplicationHttpRequest.java b/java/org/apache/catalina/core/ApplicationHttpRequest.java
index e049e83..edd5b86 100644
--- a/java/org/apache/catalina/core/ApplicationHttpRequest.java
+++ b/java/org/apache/catalina/core/ApplicationHttpRequest.java
@@ -24,6 +24,7 @@ import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
@@ -849,17 +850,13 @@ class ApplicationHttpRequest extends HttpServletRequestWrapper {
if (values1 == null) {
// Skip - nothing to merge
} else {
- for (String value : values1) {
- results.add(value);
- }
+ results.addAll(Arrays.asList(values1));
}
if (values2 == null) {
// Skip - nothing to merge
} else {
- for (String value : values2) {
- results.add(value);
- }
+ results.addAll(Arrays.asList(values2));
}
String values[] = new String[results.size()];
diff --git a/java/org/apache/catalina/core/ApplicationPushBuilder.java b/java/org/apache/catalina/core/ApplicationPushBuilder.java
index 277413e..cc81243 100644
--- a/java/org/apache/catalina/core/ApplicationPushBuilder.java
+++ b/java/org/apache/catalina/core/ApplicationPushBuilder.java
@@ -18,6 +18,7 @@ package org.apache.catalina.core;
import java.nio.charset.Charset;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashSet;
@@ -140,9 +141,7 @@ public class ApplicationPushBuilder implements PushBuilder {
// Cookies
if (request.getCookies() != null) {
- for (Cookie requestCookie : request.getCookies()) {
- cookies.add(requestCookie);
- }
+ cookies.addAll(Arrays.asList(request.getCookies()));
}
for (Cookie responseCookie : catalinaRequest.getResponse().getCookies()) {
if (responseCookie.getMaxAge() < 0) {
diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java
index ff9f592..400cbe9 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -4645,9 +4645,7 @@ public class StandardContext extends ContainerBase
// Put them these listeners after the ones defined in web.xml and/or
// annotations then overwrite the list of instances with the new, full
// list.
- for (Object eventListener: getApplicationEventListeners()) {
- eventListeners.add(eventListener);
- }
+ eventListeners.addAll(Arrays.asList(getApplicationEventListeners()));
setApplicationEventListeners(eventListeners.toArray());
for (Object lifecycleListener: getApplicationLifecycleListeners()) {
lifecycleListeners.add(lifecycleListener);
diff --git a/java/org/apache/catalina/ha/session/BackupManager.java b/java/org/apache/catalina/ha/session/BackupManager.java
index 441eaa5..77cb503 100644
--- a/java/org/apache/catalina/ha/session/BackupManager.java
+++ b/java/org/apache/catalina/ha/session/BackupManager.java
@@ -272,9 +272,7 @@ public class BackupManager extends ClusterManagerBase
Set<String> sessionIds = new HashSet<>();
LazyReplicatedMap<String,Session> map =
(LazyReplicatedMap<String,Session>)sessions;
- for (String id : map.keySetFull()) {
- sessionIds.add(id);
- }
+ sessionIds.addAll(map.keySetFull());
return sessionIds;
}
diff --git a/java/org/apache/catalina/session/PersistentManagerBase.java b/java/org/apache/catalina/session/PersistentManagerBase.java
index a79dda5..b3badf4 100644
--- a/java/org/apache/catalina/session/PersistentManagerBase.java
+++ b/java/org/apache/catalina/session/PersistentManagerBase.java
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -653,9 +654,7 @@ public abstract class PersistentManagerBase extends ManagerBase
String[] storeKeys;
try {
storeKeys = getStore().keys();
- for (String storeKey : storeKeys) {
- sessionIds.add(storeKey);
- }
+ sessionIds.addAll(Arrays.asList(storeKeys));
} catch (IOException e) {
log.warn(sm.getString("persistentManager.storeKeysException"));
}
diff --git a/java/org/apache/catalina/startup/ContextConfig.java b/java/org/apache/catalina/startup/ContextConfig.java
index 39fb25d..e4ee221 100644
--- a/java/org/apache/catalina/startup/ContextConfig.java
+++ b/java/org/apache/catalina/startup/ContextConfig.java
@@ -1184,9 +1184,7 @@ public class ContextConfig implements LifecycleListener {
// Spec does not define an order.
// Use ordered JARs followed by remaining JARs
Set<WebXml> resourceJars = new LinkedHashSet<>();
- for (WebXml fragment : orderedFragments) {
- resourceJars.add(fragment);
- }
+ resourceJars.addAll(orderedFragments);
for (WebXml fragment : fragments.values()) {
if (!resourceJars.contains(fragment)) {
resourceJars.add(fragment);
diff --git a/java/org/apache/catalina/webresources/StandardRoot.java b/java/org/apache/catalina/webresources/StandardRoot.java
index f151876..cc401f2 100644
--- a/java/org/apache/catalina/webresources/StandardRoot.java
+++ b/java/org/apache/catalina/webresources/StandardRoot.java
@@ -23,6 +23,7 @@ import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
@@ -128,9 +129,7 @@ public class StandardRoot extends LifecycleMBeanBase implements WebResourceRoot
for (WebResourceSet webResourceSet : list) {
if (!webResourceSet.getClassLoaderOnly()) {
String[] entries = webResourceSet.list(path);
- for (String entry : entries) {
- result.add(entry);
- }
+ result.addAll(Arrays.asList(entries));
}
}
}
diff --git a/java/org/apache/coyote/http2/StreamStateMachine.java b/java/org/apache/coyote/http2/StreamStateMachine.java
index 0da3a2a..596b670 100644
--- a/java/org/apache/coyote/http2/StreamStateMachine.java
+++ b/java/org/apache/coyote/http2/StreamStateMachine.java
@@ -16,6 +16,7 @@
*/
package org.apache.coyote.http2;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -224,9 +225,7 @@ class StreamStateMachine {
this.canReset = canReset;
this.connectionErrorForInvalidFrame = connectionErrorForInvalidFrame;
this.errorCodeForInvalidFrame = errorCode;
- for (FrameType frameType : frameTypes) {
- frameTypesPermitted.add(frameType);
- }
+ frameTypesPermitted.addAll(Arrays.asList(frameTypes));
}
public boolean isActive() {
diff --git a/java/org/apache/jasper/servlet/JspCServletContext.java b/java/org/apache/jasper/servlet/JspCServletContext.java
index f35d0d7..8f5816d 100644
--- a/java/org/apache/jasper/servlet/JspCServletContext.java
+++ b/java/org/apache/jasper/servlet/JspCServletContext.java
@@ -191,9 +191,7 @@ public class JspCServletContext implements ServletContext {
List<URL> resourceJars = new ArrayList<>();
// Build list of potential resource JARs. Use same ordering as ContextConfig
Set<WebXml> resourceFragments = new LinkedHashSet<>();
- for (WebXml fragment : orderedFragments) {
- resourceFragments.add(fragment);
- }
+ resourceFragments.addAll(orderedFragments);
for (WebXml fragment : fragments) {
if (!resourceFragments.contains(fragment)) {
resourceFragments.add(fragment);
diff --git a/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java b/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
index c772f22..7e674f1 100644
--- a/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
+++ b/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
@@ -631,9 +631,7 @@ public class SecurityConstraint extends XmlEncodingBase implements Serializable
String[] omittedMethods = collection.findOmittedMethods();
// Simple case: no methods
if (methods.length == 0 && omittedMethods.length == 0) {
- for (String pattern : patterns) {
- coveredPatterns.add(pattern);
- }
+ coveredPatterns.addAll(Arrays.asList(patterns));
continue;
}
@@ -665,9 +663,7 @@ public class SecurityConstraint extends XmlEncodingBase implements Serializable
m = new HashSet<>();
urlMethodMap.put(pattern, m);
}
- for (String method : methods) {
- m.add(method);
- }
+ m.addAll(Arrays.asList(methods));
}
}
}
diff --git a/java/org/apache/tomcat/util/digester/Digester.java b/java/org/apache/tomcat/util/digester/Digester.java
index 9fd4a15..7644b85 100644
--- a/java/org/apache/tomcat/util/digester/Digester.java
+++ b/java/org/apache/tomcat/util/digester/Digester.java
@@ -26,6 +26,7 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.security.Permission;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.EmptyStackException;
import java.util.HashMap;
import java.util.List;
@@ -356,9 +357,7 @@ public class Digester extends DefaultHandler2 {
propertySourcesSet = true;
if (propertySources != null) {
ArrayList<IntrospectionUtils.PropertySource> sourcesList = new ArrayList<>();
- for (IntrospectionUtils.PropertySource cur : propertySources) {
- sourcesList.add(cur);
- }
+ sourcesList.addAll(Arrays.asList(propertySources));
sourcesList.add(source[0]);
source = sourcesList.toArray(new IntrospectionUtils.PropertySource[0]);
}
diff --git a/java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java b/java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java
index 5f10707..ba0e238 100644
--- a/java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java
+++ b/java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java
@@ -19,6 +19,7 @@ package org.apache.tomcat.util.net;
import java.io.IOException;
import java.io.Serializable;
import java.security.KeyStore;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -280,9 +281,7 @@ public class SSLHostConfigCertificate implements Serializable {
private Type(Authentication... authentications) {
compatibleAuthentications = new HashSet<>();
if (authentications != null) {
- for (Authentication authentication : authentications) {
- compatibleAuthentications.add(authentication);
- }
+ compatibleAuthentications.addAll(Arrays.asList(authentications));
}
}
diff --git a/java/org/apache/tomcat/util/net/jsse/JSSESSLContext.java b/java/org/apache/tomcat/util/net/jsse/JSSESSLContext.java
index 4e43379..dcf1fbe 100644
--- a/java/org/apache/tomcat/util/net/jsse/JSSESSLContext.java
+++ b/java/org/apache/tomcat/util/net/jsse/JSSESSLContext.java
@@ -21,6 +21,7 @@ import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -98,9 +99,7 @@ class JSSESSLContext implements SSLContext {
if (tm instanceof X509TrustManager) {
X509Certificate[] accepted = ((X509TrustManager) tm).getAcceptedIssuers();
if (accepted != null) {
- for (X509Certificate c : accepted) {
- certs.add(c);
- }
+ certs.addAll(Arrays.asList(accepted));
}
}
}
diff --git a/test/org/apache/catalina/users/MemoryUserDatabaseTests.java b/test/org/apache/catalina/users/MemoryUserDatabaseTests.java
index 4e6de01..bd73e28 100644
--- a/test/org/apache/catalina/users/MemoryUserDatabaseTests.java
+++ b/test/org/apache/catalina/users/MemoryUserDatabaseTests.java
@@ -21,6 +21,7 @@ import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.security.Principal;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
@@ -178,8 +179,7 @@ public class MemoryUserDatabaseTests {
private void assertPrincipalNames(String[] expectedNames, Iterator<? extends Principal> i)
{
HashSet<String> names = new HashSet<>(expectedNames.length);
- for(String name : expectedNames)
- names.add(name);
+ names.addAll(Arrays.asList(expectedNames));
int j=0;
while(i.hasNext()) {
diff --git a/test/org/apache/tomcat/util/descriptor/web/TestSecurityConstraint.java b/test/org/apache/tomcat/util/descriptor/web/TestSecurityConstraint.java
index a7c6818..067838e 100644
--- a/test/org/apache/tomcat/util/descriptor/web/TestSecurityConstraint.java
+++ b/test/org/apache/tomcat/util/descriptor/web/TestSecurityConstraint.java
@@ -16,6 +16,7 @@
*/
package org.apache.tomcat.util.descriptor.web;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -396,9 +397,7 @@ public class TestSecurityConstraint {
Assert.assertEquals(0, sc.findMethods().length);
Assert.assertEquals(2, sc.findOmittedMethods().length);
HashSet<String> omittedMethods = new HashSet<>();
- for (String omittedMethod : sc.findOmittedMethods()) {
- omittedMethods.add(omittedMethod);
- }
+ omittedMethods.addAll(Arrays.asList(sc.findOmittedMethods()));
Assert.assertTrue(omittedMethods.remove("GET"));
Assert.assertTrue(omittedMethods.remove("POST"));
}
diff --git a/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java b/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java
index b7a8632..5ff2a5c 100644
--- a/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java
+++ b/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java
@@ -20,6 +20,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -366,9 +367,7 @@ public class TesterOpenSSL {
public static Set<String> getOpenSSLCiphersAsSet(String specification) throws Exception {
String[] ciphers = getOpenSSLCiphersAsExpression(specification).trim().split(":");
Set<String> result = new HashSet<>(ciphers.length);
- for (String cipher : ciphers) {
- result.add(cipher);
- }
+ result.addAll(Arrays.asList(ciphers));
return result;
}
@@ -469,9 +468,7 @@ public class TesterOpenSSL {
}
List<String> cmd = new ArrayList<>();
cmd.add(openSSLPath);
- for (String arg : args) {
- cmd.add(arg);
- }
+ cmd.addAll(Arrays.asList(args));
ProcessBuilder pb = new ProcessBuilder(cmd.toArray(new String[0]));
diff --git a/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java b/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java
index ac69fa7..bf2d36d 100644
--- a/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java
+++ b/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.net.URI;
import java.nio.ByteBuffer;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -685,9 +686,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
List<String> lst = new ArrayList<>(1);
str = str.substring(1,str.length()-1);
String[] strings = str.split(",");
- for (String t : strings){
- lst.add(t);
- }
+ lst.addAll(Arrays.asList(strings));
return lst;
}
diff --git a/test/org/apache/tomcat/websocket/server/TestClose.java b/test/org/apache/tomcat/websocket/server/TestClose.java
index 30c18bb..60e9aa5 100644
--- a/test/org/apache/tomcat/websocket/server/TestClose.java
+++ b/test/org/apache/tomcat/websocket/server/TestClose.java
@@ -17,6 +17,7 @@
package org.apache.tomcat.websocket.server;
import java.io.IOException;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
@@ -86,9 +87,7 @@ public class TestClose extends WebSocketBaseTest {
public static void awaitOnClose(CloseCode... codes) {
Set<CloseCode> set = new HashSet<>();
- for (CloseCode code : codes) {
- set.add(code);
- }
+ set.addAll(Arrays.asList(codes));
awaitOnClose(set);
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 6925a34..9988353 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -131,6 +131,10 @@
Refactor loops with a condition to exit as soon as the condition is met.
Pull request provided by Lars Grefer. (markt)
</scode>
+ <scode>
+ Refactor bulk addition to collections to use <code>addAll()</code>
+ rather than a loop. 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