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 2022/10/12 13:55:12 UTC

[tomcat] branch 10.1.x updated: Use List.toArray(new T[0]) rather than List.toArray(new T[size])

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

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


The following commit(s) were added to refs/heads/10.1.x by this push:
     new 152dc92d7f Use List.toArray(new T[0]) rather than List.toArray(new T[size])
152dc92d7f is described below

commit 152dc92d7f31120870b60f3d94f7b08e679a8a1e
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Oct 12 14:54:44 2022 +0100

    Use List.toArray(new T[0]) rather than List.toArray(new T[size])
    
    Minor performance optimisation
---
 .../catalina/core/ApplicationHttpRequest.java      |  3 +--
 java/org/apache/catalina/core/ContainerBase.java   |  7 ++----
 java/org/apache/catalina/core/StandardContext.java | 13 ++++-------
 java/org/apache/catalina/core/StandardService.java |  4 +---
 java/org/apache/catalina/core/StandardWrapper.java |  9 +++-----
 .../catalina/deploy/NamingResourcesImpl.java       | 26 +++++++---------------
 .../apache/catalina/ha/tcp/SimpleTcpCluster.java   |  9 +-------
 java/org/apache/catalina/realm/JNDIRealm.java      |  5 ++---
 java/org/apache/catalina/realm/RealmBase.java      |  4 +---
 .../org/apache/catalina/startup/ContextConfig.java |  3 +--
 .../catalina/tribes/membership/Membership.java     |  3 +--
 .../tribes/tipis/AbstractReplicatedMap.java        |  4 +---
 .../catalina/tribes/transport/PooledSender.java    |  3 +--
 java/org/apache/catalina/tribes/util/Arrays.java   |  3 +--
 java/org/apache/jasper/JspC.java                   |  3 +--
 .../apache/jasper/compiler/ErrorDispatcher.java    |  3 +--
 .../apache/tomcat/util/modeler/ManagedBean.java    |  8 ++-----
 .../tomcat/util/net/openssl/OpenSSLEngine.java     |  7 +-----
 test/org/apache/catalina/session/TesterStore.java  |  2 +-
 .../tomcat/websocket/TestWsSubprotocols.java       |  2 +-
 .../compressionFilters/CompressionFilter.java      |  3 +--
 21 files changed, 36 insertions(+), 88 deletions(-)

diff --git a/java/org/apache/catalina/core/ApplicationHttpRequest.java b/java/org/apache/catalina/core/ApplicationHttpRequest.java
index 6d6dd6fe38..36a0401d44 100644
--- a/java/org/apache/catalina/core/ApplicationHttpRequest.java
+++ b/java/org/apache/catalina/core/ApplicationHttpRequest.java
@@ -865,8 +865,7 @@ class ApplicationHttpRequest extends HttpServletRequestWrapper {
             results.addAll(Arrays.asList(values2));
         }
 
-        String values[] = new String[results.size()];
-        return results.toArray(values);
+        return results.toArray(new String[0]);
     }
 
 
diff --git a/java/org/apache/catalina/core/ContainerBase.java b/java/org/apache/catalina/core/ContainerBase.java
index 2e3752f27c..f09038f5a3 100644
--- a/java/org/apache/catalina/core/ContainerBase.java
+++ b/java/org/apache/catalina/core/ContainerBase.java
@@ -777,8 +777,7 @@ public abstract class ContainerBase extends LifecycleMBeanBase implements Contai
     @Override
     public Container[] findChildren() {
         synchronized (children) {
-            Container results[] = new Container[children.size()];
-            return children.values().toArray(results);
+            return children.values().toArray(new Container[0]);
         }
     }
 
@@ -790,9 +789,7 @@ public abstract class ContainerBase extends LifecycleMBeanBase implements Contai
      */
     @Override
     public ContainerListener[] findContainerListeners() {
-        ContainerListener[] results =
-            new ContainerListener[0];
-        return listeners.toArray(results);
+        return listeners.toArray(new ContainerListener[0]);
     }
 
 
diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java
index 5044ed462a..888973b0f9 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -3497,8 +3497,7 @@ public class StandardContext extends ContainerBase
     @Override
     public FilterDef[] findFilterDefs() {
         synchronized (filterDefs) {
-            FilterDef results[] = new FilterDef[filterDefs.size()];
-            return filterDefs.values().toArray(results);
+            return filterDefs.values().toArray(new FilterDef[0]);
         }
     }
 
@@ -3532,9 +3531,7 @@ public class StandardContext extends ContainerBase
      */
     public MessageDestination[] findMessageDestinations() {
         synchronized (messageDestinations) {
-            MessageDestination results[] =
-                new MessageDestination[messageDestinations.size()];
-            return messageDestinations.values().toArray(results);
+            return messageDestinations.values().toArray(new MessageDestination[0]);
         }
     }
 
@@ -3558,8 +3555,7 @@ public class StandardContext extends ContainerBase
     @Override
     public String[] findMimeMappings() {
         synchronized (mimeMappings) {
-            String results[] = new String[mimeMappings.size()];
-            return mimeMappings.keySet().toArray(results);
+            return mimeMappings.keySet().toArray(new String[0]);
         }
     }
 
@@ -3663,8 +3659,7 @@ public class StandardContext extends ContainerBase
     @Override
     public String[] findServletMappings() {
         synchronized (servletMappingsLock) {
-            String results[] = new String[servletMappings.size()];
-            return servletMappings.keySet().toArray(results);
+            return servletMappings.keySet().toArray(new String[0]);
         }
     }
 
diff --git a/java/org/apache/catalina/core/StandardService.java b/java/org/apache/catalina/core/StandardService.java
index bdeb13eb1c..15a7d89ac9 100644
--- a/java/org/apache/catalina/core/StandardService.java
+++ b/java/org/apache/catalina/core/StandardService.java
@@ -367,9 +367,7 @@ public class StandardService extends LifecycleMBeanBase implements Service {
     @Override
     public Executor[] findExecutors() {
         synchronized (executors) {
-            Executor[] arr = new Executor[executors.size()];
-            executors.toArray(arr);
-            return arr;
+            return executors.toArray(new Executor[0]);
         }
     }
 
diff --git a/java/org/apache/catalina/core/StandardWrapper.java b/java/org/apache/catalina/core/StandardWrapper.java
index 7f72326966..c54680a8f8 100644
--- a/java/org/apache/catalina/core/StandardWrapper.java
+++ b/java/org/apache/catalina/core/StandardWrapper.java
@@ -511,8 +511,7 @@ public class StandardWrapper extends ContainerBase
             }
         }
 
-        String[] methodNames = new String[allow.size()];
-        return allow.toArray(methodNames);
+        return allow.toArray(new String[0]);
     }
 
 
@@ -751,8 +750,7 @@ public class StandardWrapper extends ContainerBase
 
         parametersLock.readLock().lock();
         try {
-            String results[] = new String[parameters.size()];
-            return parameters.keySet().toArray(results);
+            return parameters.keySet().toArray(new String[0]);
         } finally {
             parametersLock.readLock().unlock();
         }
@@ -816,8 +814,7 @@ public class StandardWrapper extends ContainerBase
 
         referencesLock.readLock().lock();
         try {
-            String results[] = new String[references.size()];
-            return references.keySet().toArray(results);
+            return references.keySet().toArray(new String[0]);
         } finally {
             referencesLock.readLock().unlock();
         }
diff --git a/java/org/apache/catalina/deploy/NamingResourcesImpl.java b/java/org/apache/catalina/deploy/NamingResourcesImpl.java
index 26179f912d..1000fc5846 100644
--- a/java/org/apache/catalina/deploy/NamingResourcesImpl.java
+++ b/java/org/apache/catalina/deploy/NamingResourcesImpl.java
@@ -529,8 +529,7 @@ public class NamingResourcesImpl extends LifecycleMBeanBase
     public ContextEjb[] findEjbs() {
 
         synchronized (ejbs) {
-            ContextEjb results[] = new ContextEjb[ejbs.size()];
-            return ejbs.values().toArray(results);
+            return ejbs.values().toArray(new ContextEjb[0]);
         }
 
     }
@@ -559,8 +558,7 @@ public class NamingResourcesImpl extends LifecycleMBeanBase
     public ContextEnvironment[] findEnvironments() {
 
         synchronized (envs) {
-            ContextEnvironment results[] = new ContextEnvironment[envs.size()];
-            return envs.values().toArray(results);
+            return envs.values().toArray(new ContextEnvironment[0]);
         }
 
     }
@@ -588,8 +586,7 @@ public class NamingResourcesImpl extends LifecycleMBeanBase
     public ContextLocalEjb[] findLocalEjbs() {
 
         synchronized (localEjbs) {
-            ContextLocalEjb results[] = new ContextLocalEjb[localEjbs.size()];
-            return localEjbs.values().toArray(results);
+            return localEjbs.values().toArray(new ContextLocalEjb[0]);
         }
 
     }
@@ -617,9 +614,7 @@ public class NamingResourcesImpl extends LifecycleMBeanBase
     public MessageDestinationRef[] findMessageDestinationRefs() {
 
         synchronized (mdrs) {
-            MessageDestinationRef results[] =
-                new MessageDestinationRef[mdrs.size()];
-            return mdrs.values().toArray(results);
+            return mdrs.values().toArray(new MessageDestinationRef[0]);
         }
 
     }
@@ -662,9 +657,7 @@ public class NamingResourcesImpl extends LifecycleMBeanBase
     public ContextResourceLink[] findResourceLinks() {
 
         synchronized (resourceLinks) {
-            ContextResourceLink results[] =
-                new ContextResourceLink[resourceLinks.size()];
-            return resourceLinks.values().toArray(results);
+            return resourceLinks.values().toArray(new ContextResourceLink[0]);
         }
 
     }
@@ -677,8 +670,7 @@ public class NamingResourcesImpl extends LifecycleMBeanBase
     public ContextResource[] findResources() {
 
         synchronized (resources) {
-            ContextResource results[] = new ContextResource[resources.size()];
-            return resources.values().toArray(results);
+            return resources.values().toArray(new ContextResource[0]);
         }
 
     }
@@ -707,8 +699,7 @@ public class NamingResourcesImpl extends LifecycleMBeanBase
     public ContextResourceEnvRef[] findResourceEnvRefs() {
 
         synchronized (resourceEnvRefs) {
-            ContextResourceEnvRef results[] = new ContextResourceEnvRef[resourceEnvRefs.size()];
-            return resourceEnvRefs.values().toArray(results);
+            return resourceEnvRefs.values().toArray(new ContextResourceEnvRef[0]);
         }
 
     }
@@ -736,8 +727,7 @@ public class NamingResourcesImpl extends LifecycleMBeanBase
     public ContextService[] findServices() {
 
         synchronized (services) {
-            ContextService results[] = new ContextService[services.size()];
-            return services.values().toArray(results);
+            return services.values().toArray(new ContextService[0]);
         }
 
     }
diff --git a/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java b/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
index 7832d7d846..83b27bddac 100644
--- a/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
+++ b/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
@@ -272,14 +272,7 @@ public class SimpleTcpCluster extends LifecycleMBeanBase
      * @return the listener array
      */
     public ClusterListener[] findClusterListeners() {
-        if (clusterListeners.size() > 0) {
-            ClusterListener[] listener = new ClusterListener[clusterListeners.size()];
-            clusterListeners.toArray(listener);
-            return listener;
-        } else {
-            return new ClusterListener[0];
-        }
-
+        return clusterListeners.toArray(new ClusterListener[0]);
     }
 
     /**
diff --git a/java/org/apache/catalina/realm/JNDIRealm.java b/java/org/apache/catalina/realm/JNDIRealm.java
index e97143937c..7ab15ec76f 100644
--- a/java/org/apache/catalina/realm/JNDIRealm.java
+++ b/java/org/apache/catalina/realm/JNDIRealm.java
@@ -1581,8 +1581,7 @@ public class JNDIRealm extends RealmBase {
         if (userRoleAttribute != null) {
             list.add(userRoleAttribute);
         }
-        String[] attrIds = new String[list.size()];
-        list.toArray(attrIds);
+        String[] attrIds = list.toArray(new String[0]);
 
         // Use pattern or search for user entry
         if (userPatternArray != null && curUserPattern >= 0) {
@@ -2892,7 +2891,7 @@ public class JNDIRealm extends RealmBase {
                 startingPoint = endParenLoc+1;
                 startParenLoc = userPatternString.indexOf('(', startingPoint);
             }
-            return pathList.toArray(new String[] {});
+            return pathList.toArray(new String[0]);
         }
         return null;
     }
diff --git a/java/org/apache/catalina/realm/RealmBase.java b/java/org/apache/catalina/realm/RealmBase.java
index f3598e5cfc..4e8e661504 100644
--- a/java/org/apache/catalina/realm/RealmBase.java
+++ b/java/org/apache/catalina/realm/RealmBase.java
@@ -791,9 +791,7 @@ public abstract class RealmBase extends LifecycleMBeanBase implements Realm {
         if(results == null || results.size() == 0) {
             return null;
         }
-        SecurityConstraint [] array = new SecurityConstraint[results.size()];
-        results.toArray(array);
-        return array;
+        return results.toArray(new SecurityConstraint [0]);
     }
 
 
diff --git a/java/org/apache/catalina/startup/ContextConfig.java b/java/org/apache/catalina/startup/ContextConfig.java
index 3e75e79ddf..dc3bf7822b 100644
--- a/java/org/apache/catalina/startup/ContextConfig.java
+++ b/java/org/apache/catalina/startup/ContextConfig.java
@@ -2836,8 +2836,7 @@ public class ContextConfig implements LifecycleListener {
         } else {
             values.add(ev.stringifyValue());
         }
-        String[] result = new String[values.size()];
-        return values.toArray(result);
+        return values.toArray(new String[0]);
     }
 
     protected Map<String,String> processAnnotationWebInitParams(
diff --git a/java/org/apache/catalina/tribes/membership/Membership.java b/java/org/apache/catalina/tribes/membership/Membership.java
index 6b0f0e6b62..c4520ac8de 100644
--- a/java/org/apache/catalina/tribes/membership/Membership.java
+++ b/java/org/apache/catalina/tribes/membership/Membership.java
@@ -237,8 +237,7 @@ public class Membership implements Cloneable {
             }
 
             if (list != null) {
-                Member[] result = new Member[list.size()];
-                list.toArray(result);
+                Member[] result = list.toArray(new Member[0]);
                 for (Member member : result) {
                     removeMember(member);
                 }
diff --git a/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java b/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
index 3fded0e1d3..d040a7262d 100644
--- a/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
+++ b/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
@@ -418,9 +418,7 @@ public abstract class AbstractReplicatedMap<K,V>
 //------------------------------------------------------------------------------
     public Member[] getMapMembers(HashMap<Member, Long> members) {
         synchronized (members) {
-            Member[] result = new Member[members.size()];
-            members.keySet().toArray(result);
-            return result;
+            return members.keySet().toArray(new Member[0]);
         }
     }
     public Member[] getMapMembers() {
diff --git a/java/org/apache/catalina/tribes/transport/PooledSender.java b/java/org/apache/catalina/tribes/transport/PooledSender.java
index 59afa9c6d3..70ea59476e 100644
--- a/java/org/apache/catalina/tribes/transport/PooledSender.java
+++ b/java/org/apache/catalina/tribes/transport/PooledSender.java
@@ -149,8 +149,7 @@ public abstract class PooledSender extends AbstractSender implements MultiPointS
         }
 
         public synchronized boolean checkIdleKeepAlive() {
-            DataSender[] list = new DataSender[notinuse.size()];
-            notinuse.toArray(list);
+            DataSender[] list = notinuse.toArray(new DataSender[0]);
             boolean result = false;
             for (DataSender dataSender : list) {
                 result = result | dataSender.keepalive();
diff --git a/java/org/apache/catalina/tribes/util/Arrays.java b/java/org/apache/catalina/tribes/util/Arrays.java
index 9cbe2db703..dfe79bd481 100644
--- a/java/org/apache/catalina/tribes/util/Arrays.java
+++ b/java/org/apache/catalina/tribes/util/Arrays.java
@@ -157,8 +157,7 @@ public class Arrays {
                 list.add(member);
             }
         }
-        Member[] result = new Member[list.size()];
-        list.toArray(result);
+        Member[] result = list.toArray(new Member[0]);
         AbsoluteOrder.absoluteOrder(result);
         return result;
     }
diff --git a/java/org/apache/jasper/JspC.java b/java/org/apache/jasper/JspC.java
index d717805ff2..243886cf5f 100644
--- a/java/org/apache/jasper/JspC.java
+++ b/java/org/apache/jasper/JspC.java
@@ -1747,8 +1747,7 @@ public class JspC extends Task implements Options {
             }
         }
 
-        URL urlsA[]=new URL[urls.size()];
-        urls.toArray(urlsA);
+        URL[] urlsA = urls.toArray(new URL[0]);
         loader = new URLClassLoader(urlsA, this.getClass().getClassLoader());
         return loader;
     }
diff --git a/java/org/apache/jasper/compiler/ErrorDispatcher.java b/java/org/apache/jasper/compiler/ErrorDispatcher.java
index 2ecc675a04..912b4a2e70 100644
--- a/java/org/apache/jasper/compiler/ErrorDispatcher.java
+++ b/java/org/apache/jasper/compiler/ErrorDispatcher.java
@@ -373,8 +373,7 @@ public class ErrorDispatcher {
 
         JavacErrorDetail[] errDetails = null;
         if (errors.size() > 0) {
-            errDetails = new JavacErrorDetail[errors.size()];
-            errors.toArray(errDetails);
+            errDetails = errors.toArray(new JavacErrorDetail[0]);
         }
 
         return errDetails;
diff --git a/java/org/apache/tomcat/util/modeler/ManagedBean.java b/java/org/apache/tomcat/util/modeler/ManagedBean.java
index c808e7ff7c..4ca7e58b44 100644
--- a/java/org/apache/tomcat/util/modeler/ManagedBean.java
+++ b/java/org/apache/tomcat/util/modeler/ManagedBean.java
@@ -95,9 +95,7 @@ public class ManagedBean implements java.io.Serializable {
      * @return the collection of attributes for this MBean.
      */
     public AttributeInfo[] getAttributes() {
-        AttributeInfo result[] = new AttributeInfo[attributes.size()];
-        attributes.values().toArray(result);
-        return result;
+        return attributes.values().toArray(new AttributeInfo[0]);
     }
 
 
@@ -197,9 +195,7 @@ public class ManagedBean implements java.io.Serializable {
      * @return the collection of operations for this MBean.
      */
     public OperationInfo[] getOperations() {
-        OperationInfo[] result = new OperationInfo[operations.size()];
-        operations.values().toArray(result);
-        return result;
+        return operations.values().toArray(new OperationInfo[0]);
     }
 
 
diff --git a/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java b/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java
index 9fe686785e..39ee3f9130 100644
--- a/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java
+++ b/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java
@@ -826,12 +826,7 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
         if ((opts & SSL.SSL_OP_NO_SSLv3) == 0) {
             enabled.add(Constants.SSL_PROTO_SSLv3);
         }
-        int size = enabled.size();
-        if (size == 0) {
-            return new String[0];
-        } else {
-            return enabled.toArray(new String[size]);
-        }
+        return enabled.toArray(new String[0]);
     }
 
     @Override
diff --git a/test/org/apache/catalina/session/TesterStore.java b/test/org/apache/catalina/session/TesterStore.java
index ffd935e252..00bc2efcf2 100644
--- a/test/org/apache/catalina/session/TesterStore.java
+++ b/test/org/apache/catalina/session/TesterStore.java
@@ -58,7 +58,7 @@ class TesterStore implements Store {
 
     @Override
     public String[] keys() throws IOException {
-        return new ArrayList<>(sessions.keySet()).toArray(new String[] {});
+        return new ArrayList<>(sessions.keySet()).toArray(new String[0]);
     }
 
     @Override
diff --git a/test/org/apache/tomcat/websocket/TestWsSubprotocols.java b/test/org/apache/tomcat/websocket/TestWsSubprotocols.java
index a08049e2de..9a38161806 100644
--- a/test/org/apache/tomcat/websocket/TestWsSubprotocols.java
+++ b/test/org/apache/tomcat/websocket/TestWsSubprotocols.java
@@ -88,7 +88,7 @@ public class TestWsSubprotocols extends WebSocketBaseTest {
         }
         Assert.assertNotNull(SubProtocolsEndpoint.subprotocols);
         Assert.assertArrayEquals(new String[]{"sp1","sp2"},
-                SubProtocolsEndpoint.subprotocols.toArray(new String[2]));
+                SubProtocolsEndpoint.subprotocols.toArray(new String[0]));
         wsSession.close();
         SubProtocolsEndpoint.recycle();
     }
diff --git a/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java b/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java
index 9f4dad6657..a34c865cb1 100644
--- a/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java
+++ b/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java
@@ -117,8 +117,7 @@ public class CompressionFilter extends GenericFilter {
             }
 
             if (values.size() > 0) {
-                compressionMimeTypes = values.toArray(
-                        new String[0]);
+                compressionMimeTypes = values.toArray(new String[0]);
             } else {
                 compressionMimeTypes = null;
             }


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