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:26 UTC

[tomcat] branch 8.5.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 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 c8a742fb52 Use List.toArray(new T[0]) rather than List.toArray(new T[size])
c8a742fb52 is described below

commit c8a742fb52f23b4b92be6b2525ddc12984060603
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 bd9f694341..0411d8dcbc 100644
--- a/java/org/apache/catalina/core/ApplicationHttpRequest.java
+++ b/java/org/apache/catalina/core/ApplicationHttpRequest.java
@@ -878,8 +878,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 7912193dc6..e3ecd9aaa7 100644
--- a/java/org/apache/catalina/core/ContainerBase.java
+++ b/java/org/apache/catalina/core/ContainerBase.java
@@ -807,8 +807,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]);
         }
     }
 
@@ -820,9 +819,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 1b4175329b..4371732fa5 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -3466,8 +3466,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]);
         }
     }
 
@@ -3501,9 +3500,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]);
         }
     }
 
@@ -3548,8 +3545,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]);
         }
     }
 
@@ -3653,8 +3649,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 c7616b1520..e693645c90 100644
--- a/java/org/apache/catalina/core/StandardService.java
+++ b/java/org/apache/catalina/core/StandardService.java
@@ -369,9 +369,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 a7ebe8362a..3af6ecad17 100644
--- a/java/org/apache/catalina/core/StandardWrapper.java
+++ b/java/org/apache/catalina/core/StandardWrapper.java
@@ -599,8 +599,7 @@ public class StandardWrapper extends ContainerBase
             }
         }
 
-        String[] methodNames = new String[allow.size()];
-        return allow.toArray(methodNames);
+        return allow.toArray(new String[0]);
     }
 
 
@@ -915,8 +914,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();
         }
@@ -980,8 +978,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 668fa508d7..45c38991bf 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 4ac6b5c1b4..534fd862f8 100644
--- a/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
+++ b/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
@@ -273,14 +273,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 498b4d22e7..66c8dd9d3c 100644
--- a/java/org/apache/catalina/realm/JNDIRealm.java
+++ b/java/org/apache/catalina/realm/JNDIRealm.java
@@ -1589,8 +1589,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) {
@@ -2922,7 +2921,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 8e17a71e27..1cdf17911f 100644
--- a/java/org/apache/catalina/realm/RealmBase.java
+++ b/java/org/apache/catalina/realm/RealmBase.java
@@ -793,9 +793,7 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
         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 7b25cbc76e..022f758a61 100644
--- a/java/org/apache/catalina/startup/ContextConfig.java
+++ b/java/org/apache/catalina/startup/ContextConfig.java
@@ -2513,8 +2513,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 34e0a21528..6d45eec798 100644
--- a/java/org/apache/catalina/tribes/membership/Membership.java
+++ b/java/org/apache/catalina/tribes/membership/Membership.java
@@ -238,8 +238,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 9d6b877cba..e5f48bf71e 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 a0a40a6bf3..d32185e212 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 2d57a4917b..6813aacc24 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 b7fd59a9b8..1e80179808 100644
--- a/java/org/apache/jasper/JspC.java
+++ b/java/org/apache/jasper/JspC.java
@@ -1759,8 +1759,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 287ce29446..a5acfa668c 100644
--- a/java/org/apache/tomcat/util/modeler/ManagedBean.java
+++ b/java/org/apache/tomcat/util/modeler/ManagedBean.java
@@ -94,9 +94,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]);
     }
 
 
@@ -196,9 +194,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 172c6fc366..cbfebdd3a9 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 a4c2e7b575..ea31a5b5ea 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 714e1156d2..57bd5c6799 100644
--- a/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java
+++ b/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java
@@ -123,8 +123,7 @@ public class CompressionFilter implements Filter {
             }
 
             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