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 c17bfe7d8f Use List.toArray(new T[0]) rather than List.toArray(new T[size]) c17bfe7d8f is described below commit c17bfe7d8ff3b7fe489ae0e9782139f2d3264002 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 e94bd6693d..f307e3e334 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 4d588cc8dd..0515e4e80d 100644 --- a/java/org/apache/catalina/core/StandardContext.java +++ b/java/org/apache/catalina/core/StandardContext.java @@ -3476,8 +3476,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]); } } @@ -3511,9 +3510,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]); } } @@ -3566,8 +3563,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]); } } @@ -3671,8 +3667,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 4a73bbe2c9..128cc2e6da 100644 --- a/java/org/apache/catalina/core/StandardWrapper.java +++ b/java/org/apache/catalina/core/StandardWrapper.java @@ -606,8 +606,7 @@ public class StandardWrapper extends ContainerBase } } - String[] methodNames = new String[allow.size()]; - return allow.toArray(methodNames); + return allow.toArray(new String[0]); } @@ -914,8 +913,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(); } @@ -979,8 +977,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 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 672ecf5553..f885be0f01 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) { @@ -2907,7 +2906,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 86f493e223..a2f031076a 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 c1f85bd8e7..0738148d6e 100644 --- a/java/org/apache/catalina/startup/ContextConfig.java +++ b/java/org/apache/catalina/startup/ContextConfig.java @@ -2845,8 +2845,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 afc92b795e..102dd796e4 100644 --- a/java/org/apache/jasper/JspC.java +++ b/java/org/apache/jasper/JspC.java @@ -1796,8 +1796,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 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 698a9ffdd5..b80988708f 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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org