This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push: new b6b4e68 Bulk operation can be used instead of iteration b6b4e68 is described below commit b6b4e68c30d70b126143037ea592d74f610e3db3 Author: Lars Grefer <lars.gre...@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 ++--- .../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 ++++ 20 files changed, 40 insertions(+), 69 deletions(-) diff --git a/java/org/apache/catalina/core/ApplicationContext.java b/java/org/apache/catalina/core/ApplicationContext.java index 7dc4242..31419fe 100644 --- a/java/org/apache/catalina/core/ApplicationContext.java +++ b/java/org/apache/catalina/core/ApplicationContext.java @@ -1356,9 +1356,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 bd27924..05b65c7 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.Map; @@ -860,17 +861,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 052bef0..6eae33f 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; @@ -139,9 +140,7 @@ public class ApplicationPushBuilder { // 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 a024fb0..e8cbbe2 100644 --- a/java/org/apache/catalina/core/StandardContext.java +++ b/java/org/apache/catalina/core/StandardContext.java @@ -4656,9 +4656,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 1f4fa21..58e0903 100644 --- a/java/org/apache/catalina/ha/session/BackupManager.java +++ b/java/org/apache/catalina/ha/session/BackupManager.java @@ -256,9 +256,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 7a91251..8213467 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; @@ -658,9 +659,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 25f2e1d..79df4ec 100644 --- a/java/org/apache/catalina/startup/ContextConfig.java +++ b/java/org/apache/catalina/startup/ContextConfig.java @@ -1178,9 +1178,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 c5592c9..65d1f11 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; @@ -127,9 +128,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 e076395..4e57797 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; @@ -229,9 +230,7 @@ public 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 a55c804..620a5d1 100644 --- a/java/org/apache/jasper/servlet/JspCServletContext.java +++ b/java/org/apache/jasper/servlet/JspCServletContext.java @@ -192,9 +192,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 439aea7..735b041 100644 --- a/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java +++ b/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java @@ -638,9 +638,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; } @@ -672,9 +670,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 ec0e256..0a97002 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; @@ -357,9 +358,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/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 c6c6744..e2e46f7 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -133,6 +133,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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org