This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 7.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/7.0.x by this push: new 1c2e529 Use empty arrays for Collections.toArray() 1c2e529 is described below commit 1c2e529a5e6aa835f29c0da83543dc8d7a496058 Author: Lars Grefer <lars.gre...@materna.de> AuthorDate: Tue Apr 7 18:09:26 2020 +0200 Use empty arrays for Collections.toArray() There are two styles to convert a collection to an array: either using a pre-sized array (like c.toArray(new String[c.size()])) or using an empty array (like c.toArray(new String[0]). In older Java versions using pre-sized array was recommended, as the reflection call which is necessary to create an array of proper size was quite slow. However since late updates of OpenJDK 6 this call was intrinsified, making the performance of the empty array version the same and sometimes even better, compared to the pre-sized version. See also: https://shipilev.net/blog/2016/arrays-wisdom-ancients/ --- java/javax/servlet/jsp/el/ImplicitObjectELResolver.java | 2 +- java/org/apache/catalina/core/ContainerBase.java | 2 +- java/org/apache/catalina/core/DefaultInstanceManager.java | 3 +-- java/org/apache/catalina/core/StandardContext.java | 2 +- java/org/apache/catalina/core/StandardHost.java | 2 +- java/org/apache/catalina/core/StandardWrapper.java | 2 +- java/org/apache/catalina/deploy/FilterMap.java | 2 +- java/org/apache/catalina/deploy/SecurityConstraint.java | 2 +- java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java | 2 +- java/org/apache/catalina/mbeans/ContainerMBean.java | 4 ++-- java/org/apache/catalina/mbeans/GroupMBean.java | 6 ++---- java/org/apache/catalina/mbeans/MemoryUserDatabaseMBean.java | 9 +++------ java/org/apache/catalina/mbeans/NamingResourcesMBean.java | 11 ++++------- java/org/apache/catalina/mbeans/UserMBean.java | 6 ++---- java/org/apache/catalina/realm/GenericPrincipal.java | 6 +++--- java/org/apache/catalina/servlets/CGIServlet.java | 2 +- java/org/apache/catalina/session/FileStore.java | 2 +- java/org/apache/catalina/session/JDBCStore.java | 2 +- java/org/apache/catalina/startup/ClassLoaderFactory.java | 4 ++-- java/org/apache/catalina/startup/HostConfig.java | 2 +- java/org/apache/catalina/tribes/ChannelException.java | 2 +- java/org/apache/catalina/tribes/group/RpcChannel.java | 2 +- .../tribes/group/interceptors/TcpFailureDetector.java | 4 ++-- .../tribes/group/interceptors/TwoPhaseCommitInterceptor.java | 2 +- .../apache/catalina/tribes/tipis/AbstractReplicatedMap.java | 4 ++-- java/org/apache/catalina/tribes/tipis/ReplicatedMap.java | 2 +- .../catalina/tribes/transport/bio/MultipointBioSender.java | 2 +- java/org/apache/catalina/tribes/util/Arrays.java | 4 ++-- .../org/apache/catalina/valves/StuckThreadDetectionValve.java | 2 +- java/org/apache/el/parser/AstMethodParameters.java | 2 +- java/org/apache/jasper/compiler/JavacErrorDetail.java | 2 +- java/org/apache/jasper/compiler/Validator.java | 2 +- .../apache/naming/factory/webservices/ServiceRefFactory.java | 2 +- .../apache/tomcat/dbcp/dbcp/PoolablePreparedStatement.java | 2 +- java/org/apache/tomcat/util/http/Parameters.java | 2 +- java/org/apache/tomcat/util/modeler/BaseAttributeFilter.java | 2 +- test/org/apache/tomcat/unittest/TesterContext.java | 5 ++--- webapps/docs/changelog.xml | 4 ++++ .../WEB-INF/classes/compressionFilters/CompressionFilter.java | 3 +-- 39 files changed, 57 insertions(+), 66 deletions(-) diff --git a/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java b/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java index 588039d..82f9c09 100644 --- a/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java +++ b/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java @@ -338,7 +338,7 @@ public class ImplicitObjectELResolver extends ELResolver { while (e.hasMoreElements()) { list.add(e.nextElement()); } - return list.toArray(new String[list.size()]); + return list.toArray(new String[0]); } return null; } diff --git a/java/org/apache/catalina/core/ContainerBase.java b/java/org/apache/catalina/core/ContainerBase.java index 9a48670..3b5252f 100644 --- a/java/org/apache/catalina/core/ContainerBase.java +++ b/java/org/apache/catalina/core/ContainerBase.java @@ -1559,7 +1559,7 @@ public abstract class ContainerBase extends LifecycleMBeanBase names.add(((ContainerBase)next).getObjectName()); } } - return names.toArray(new ObjectName[names.size()]); + return names.toArray(new ObjectName[0]); } diff --git a/java/org/apache/catalina/core/DefaultInstanceManager.java b/java/org/apache/catalina/core/DefaultInstanceManager.java index ea2ded0..457ea89 100644 --- a/java/org/apache/catalina/core/DefaultInstanceManager.java +++ b/java/org/apache/catalina/core/DefaultInstanceManager.java @@ -438,8 +438,7 @@ public class DefaultInstanceManager implements InstanceManager { // Use common object to save memory annotationsArray = ANNOTATIONS_EMPTY; } else { - annotationsArray = annotations.toArray( - new AnnotationCacheEntry[annotations.size()]); + annotationsArray = annotations.toArray(new AnnotationCacheEntry[0]); } synchronized (annotationCache) { annotationCache.put(clazz, annotationsArray); diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java index af356b2..949adcb 100644 --- a/java/org/apache/catalina/core/StandardContext.java +++ b/java/org/apache/catalina/core/StandardContext.java @@ -3922,7 +3922,7 @@ public class StandardContext extends ContainerBase public String[] findParameters() { List<String> parameterNames = new ArrayList<String>(parameters.size()); parameterNames.addAll(parameters.keySet()); - return parameterNames.toArray(new String[parameterNames.size()]); + return parameterNames.toArray(new String[0]); } diff --git a/java/org/apache/catalina/core/StandardHost.java b/java/org/apache/catalina/core/StandardHost.java index 99df7ad..93cab31 100644 --- a/java/org/apache/catalina/core/StandardHost.java +++ b/java/org/apache/catalina/core/StandardHost.java @@ -683,7 +683,7 @@ public class StandardHost extends ContainerBase implements Host { } } - return result.toArray(new String[result.size()]); + return result.toArray(new String[0]); } /** diff --git a/java/org/apache/catalina/core/StandardWrapper.java b/java/org/apache/catalina/core/StandardWrapper.java index ff83ead..aa73b95 100644 --- a/java/org/apache/catalina/core/StandardWrapper.java +++ b/java/org/apache/catalina/core/StandardWrapper.java @@ -990,7 +990,7 @@ public class StandardWrapper extends ContainerBase try { mappingsLock.readLock().lock(); - return mappings.toArray(new String[mappings.size()]); + return mappings.toArray(new String[0]); } finally { mappingsLock.readLock().unlock(); } diff --git a/java/org/apache/catalina/deploy/FilterMap.java b/java/org/apache/catalina/deploy/FilterMap.java index 8c910fb..eefc369 100644 --- a/java/org/apache/catalina/deploy/FilterMap.java +++ b/java/org/apache/catalina/deploy/FilterMap.java @@ -192,7 +192,7 @@ public class FilterMap implements Serializable { if ((dispatcherMapping & ASYNC) > 0) { result.add(DispatcherType.ASYNC.name()); } - return result.toArray(new String[result.size()]); + return result.toArray(new String[0]); } // --------------------------------------------------------- Public Methods diff --git a/java/org/apache/catalina/deploy/SecurityConstraint.java b/java/org/apache/catalina/deploy/SecurityConstraint.java index c423fb0..7f7e579 100644 --- a/java/org/apache/catalina/deploy/SecurityConstraint.java +++ b/java/org/apache/catalina/deploy/SecurityConstraint.java @@ -509,7 +509,7 @@ public class SecurityConstraint implements Serializable { } - return result.toArray(new SecurityConstraint[result.size()]); + return result.toArray(new SecurityConstraint[0]); } private static SecurityConstraint createConstraint( diff --git a/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java b/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java index c527df8..c9470bb 100644 --- a/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java +++ b/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java @@ -301,7 +301,7 @@ public class SimpleTcpCluster extends LifecycleMBeanBase */ @Override public Valve[] getValves() { - return valves.toArray(new Valve[valves.size()]); + return valves.toArray(new Valve[0]); } /** diff --git a/java/org/apache/catalina/mbeans/ContainerMBean.java b/java/org/apache/catalina/mbeans/ContainerMBean.java index aa5adf3..a700293 100644 --- a/java/org/apache/catalina/mbeans/ContainerMBean.java +++ b/java/org/apache/catalina/mbeans/ContainerMBean.java @@ -304,7 +304,7 @@ public class ContainerMBean extends BaseModelMBean { result.add(listener.getClass().getName()); } - return result.toArray(new String[result.size()]); + return result.toArray(new String[0]); } @@ -333,6 +333,6 @@ public class ContainerMBean extends BaseModelMBean { result.add(listener.getClass().getName()); } - return result.toArray(new String[result.size()]); + return result.toArray(new String[0]); } } diff --git a/java/org/apache/catalina/mbeans/GroupMBean.java b/java/org/apache/catalina/mbeans/GroupMBean.java index 120349c..9cb0be0 100644 --- a/java/org/apache/catalina/mbeans/GroupMBean.java +++ b/java/org/apache/catalina/mbeans/GroupMBean.java @@ -103,8 +103,7 @@ public class GroupMBean extends BaseModelMBean { throw iae; } } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } @@ -130,8 +129,7 @@ public class GroupMBean extends BaseModelMBean { throw iae; } } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } diff --git a/java/org/apache/catalina/mbeans/MemoryUserDatabaseMBean.java b/java/org/apache/catalina/mbeans/MemoryUserDatabaseMBean.java index 2107ed0..e5621f2 100644 --- a/java/org/apache/catalina/mbeans/MemoryUserDatabaseMBean.java +++ b/java/org/apache/catalina/mbeans/MemoryUserDatabaseMBean.java @@ -115,8 +115,7 @@ public class MemoryUserDatabaseMBean extends BaseModelMBean { Group group = groups.next(); results.add(findGroup(group.getGroupname())); } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } @@ -132,8 +131,7 @@ public class MemoryUserDatabaseMBean extends BaseModelMBean { Role role = roles.next(); results.add(findRole(role.getRolename())); } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } @@ -149,8 +147,7 @@ public class MemoryUserDatabaseMBean extends BaseModelMBean { User user = users.next(); results.add(findUser(user.getUsername())); } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } diff --git a/java/org/apache/catalina/mbeans/NamingResourcesMBean.java b/java/org/apache/catalina/mbeans/NamingResourcesMBean.java index 715e144..4727bb5 100644 --- a/java/org/apache/catalina/mbeans/NamingResourcesMBean.java +++ b/java/org/apache/catalina/mbeans/NamingResourcesMBean.java @@ -98,8 +98,7 @@ public class NamingResourcesMBean extends BaseModelMBean { throw iae; } } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } @@ -124,8 +123,7 @@ public class NamingResourcesMBean extends BaseModelMBean { throw iae; } } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } @@ -150,12 +148,11 @@ public class NamingResourcesMBean extends BaseModelMBean { throw iae; } } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } - // ------------------------------------------------------------- Operations + // ------------------------------------------------------------- Operations /** * Add an environment entry for this web application. diff --git a/java/org/apache/catalina/mbeans/UserMBean.java b/java/org/apache/catalina/mbeans/UserMBean.java index 20d1e85..b4c4fdf 100644 --- a/java/org/apache/catalina/mbeans/UserMBean.java +++ b/java/org/apache/catalina/mbeans/UserMBean.java @@ -103,8 +103,7 @@ public class UserMBean extends BaseModelMBean { throw iae; } } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } @@ -130,8 +129,7 @@ public class UserMBean extends BaseModelMBean { throw iae; } } - return results.toArray(new String[results.size()]); - + return results.toArray(new String[0]); } diff --git a/java/org/apache/catalina/realm/GenericPrincipal.java b/java/org/apache/catalina/realm/GenericPrincipal.java index 706daeb..7c3d651 100644 --- a/java/org/apache/catalina/realm/GenericPrincipal.java +++ b/java/org/apache/catalina/realm/GenericPrincipal.java @@ -123,10 +123,10 @@ public class GenericPrincipal implements Principal { this.password = password; this.userPrincipal = userPrincipal; if (roles != null) { - this.roles = new String[roles.size()]; - this.roles = roles.toArray(this.roles); - if (this.roles.length > 1) + this.roles = roles.toArray(new String[0]); + if (this.roles.length > 1) { Arrays.sort(this.roles); + } } this.loginContext = loginContext; this.gssCredential = gssCredential; diff --git a/java/org/apache/catalina/servlets/CGIServlet.java b/java/org/apache/catalina/servlets/CGIServlet.java index 2bbc6ea..4d811ea 100644 --- a/java/org/apache/catalina/servlets/CGIServlet.java +++ b/java/org/apache/catalina/servlets/CGIServlet.java @@ -1674,7 +1674,7 @@ public final class CGIServlet extends HttpServlet { try { rt = Runtime.getRuntime(); proc = rt.exec( - cmdAndArgs.toArray(new String[cmdAndArgs.size()]), + cmdAndArgs.toArray(new String[0]), hashToStringArray(env), wd); String sContentLength = env.get("CONTENT_LENGTH"); diff --git a/java/org/apache/catalina/session/FileStore.java b/java/org/apache/catalina/session/FileStore.java index 5dde3fd..c0c401a 100644 --- a/java/org/apache/catalina/session/FileStore.java +++ b/java/org/apache/catalina/session/FileStore.java @@ -202,7 +202,7 @@ public final class FileStore extends StoreBase { list.add (file.substring(0, file.length() - n)); } } - return list.toArray(new String[list.size()]); + return list.toArray(new String[0]); } diff --git a/java/org/apache/catalina/session/JDBCStore.java b/java/org/apache/catalina/session/JDBCStore.java index 00ce277..b0ea43a 100644 --- a/java/org/apache/catalina/session/JDBCStore.java +++ b/java/org/apache/catalina/session/JDBCStore.java @@ -523,7 +523,7 @@ public class JDBCStore extends StoreBase { tmpkeys.add(rst.getString(1)); } } - keys = tmpkeys.toArray(new String[tmpkeys.size()]); + keys = tmpkeys.toArray(new String[0]); // Break out after the finally block numberOfTries = 0; } finally { diff --git a/java/org/apache/catalina/startup/ClassLoaderFactory.java b/java/org/apache/catalina/startup/ClassLoaderFactory.java index 7f8ac58..ceeb0ac 100644 --- a/java/org/apache/catalina/startup/ClassLoaderFactory.java +++ b/java/org/apache/catalina/startup/ClassLoaderFactory.java @@ -126,7 +126,7 @@ public final class ClassLoaderFactory { } // Construct the class loader itself - final URL[] array = set.toArray(new URL[set.size()]); + final URL[] array = set.toArray(new URL[0]); return AccessController.doPrivileged( new PrivilegedAction<URLClassLoader>() { @Override @@ -222,7 +222,7 @@ public final class ClassLoaderFactory { } // Construct the class loader itself - final URL[] array = set.toArray(new URL[set.size()]); + final URL[] array = set.toArray(new URL[0]); if (log.isDebugEnabled()) for (int i = 0; i < array.length; i++) { log.debug(" location " + i + " is " + array[i]); diff --git a/java/org/apache/catalina/startup/HostConfig.java b/java/org/apache/catalina/startup/HostConfig.java index c63eaec..542ed55 100644 --- a/java/org/apache/catalina/startup/HostConfig.java +++ b/java/org/apache/catalina/startup/HostConfig.java @@ -562,7 +562,7 @@ public class HostConfig filteredList.add(appPath); } } - return filteredList.toArray(new String[filteredList.size()]); + return filteredList.toArray(new String[0]); } diff --git a/java/org/apache/catalina/tribes/ChannelException.java b/java/org/apache/catalina/tribes/ChannelException.java index 8ecfe75..aeb3383 100644 --- a/java/org/apache/catalina/tribes/ChannelException.java +++ b/java/org/apache/catalina/tribes/ChannelException.java @@ -132,7 +132,7 @@ public class ChannelException extends Exception { */ public FaultyMember[] getFaultyMembers() { if ( this.faultyMembers==null ) return EMPTY_LIST; - return faultyMembers.toArray(new FaultyMember[faultyMembers.size()]); + return faultyMembers.toArray(new FaultyMember[0]); } /** diff --git a/java/org/apache/catalina/tribes/group/RpcChannel.java b/java/org/apache/catalina/tribes/group/RpcChannel.java index 049f5e2..3618738 100644 --- a/java/org/apache/catalina/tribes/group/RpcChannel.java +++ b/java/org/apache/catalina/tribes/group/RpcChannel.java @@ -287,7 +287,7 @@ public class RpcChannel implements ChannelListener { } public Response[] getResponses() { - return responses.toArray(new Response[responses.size()]); + return responses.toArray(new Response[0]); } } diff --git a/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java b/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java index 0d458cc..176375a 100644 --- a/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java +++ b/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java @@ -276,7 +276,7 @@ public class TcpFailureDetector extends ChannelInterceptorBase { //check suspect members if they are still alive, //if not, simply issue the memberDisappeared message - MemberImpl[] keys = removeSuspects.keySet().toArray(new MemberImpl[removeSuspects.size()]); + MemberImpl[] keys = removeSuspects.keySet().toArray(new MemberImpl[0]); for (int i = 0; i < keys.length; i++) { MemberImpl m = keys[i]; if (membership.getMember(m) != null && (!memberAlive(m))) { @@ -301,7 +301,7 @@ public class TcpFailureDetector extends ChannelInterceptorBase { //check add suspects members if they are alive now, //if they are, simply issue the memberAdded message - keys = addSuspects.keySet().toArray(new MemberImpl[addSuspects.size()]); + keys = addSuspects.keySet().toArray(new MemberImpl[0]); for (int i = 0; i < keys.length; i++) { MemberImpl m = keys[i]; if ( membership.getMember(m) == null && (memberAlive(m))) { diff --git a/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java b/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java index e1bb848..fd54677 100644 --- a/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java +++ b/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java @@ -117,7 +117,7 @@ public class TwoPhaseCommitInterceptor extends ChannelInterceptorBase { try { long now = System.currentTimeMillis(); @SuppressWarnings("unchecked") - Map.Entry<UniqueId,MapEntry>[] entries = messages.entrySet().toArray(new Map.Entry[messages.size()]); + Map.Entry<UniqueId,MapEntry>[] entries = messages.entrySet().toArray(new Map.Entry[0]); for (int i=0; i<entries.length; i++ ) { MapEntry entry = entries[i].getValue(); if ( entry.expired(now,expire) ) { diff --git a/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java b/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java index 83e8b9d..c005319 100644 --- a/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java +++ b/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java @@ -319,7 +319,7 @@ public abstract class AbstractReplicatedMap<K,V> } //update our map of members, expire some if we didn't receive a ping back synchronized (mapMembers) { - Member[] members = mapMembers.keySet().toArray(new Member[mapMembers.size()]); + Member[] members = mapMembers.keySet().toArray(new Member[0]); long now = System.currentTimeMillis(); for (Member member : members) { long access = mapMembers.get(member).longValue(); @@ -850,7 +850,7 @@ public abstract class AbstractReplicatedMap<K,V> if ( mbrs[j].equals(set[i]) ) include = false; if ( include ) result.add(set[i]); } - return result.toArray(new Member[result.size()]); + return result.toArray(new Member[0]); } @Override diff --git a/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java b/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java index ed7f5ad..90f7ea7 100644 --- a/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java +++ b/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java @@ -159,7 +159,7 @@ public class ReplicatedMap<K,V> extends AbstractReplicatedMap<K,V> { faulty.add(faultyMember.getMember()); } } - Member[] realFaultyMembers = faulty.toArray(new Member[faulty.size()]); + Member[] realFaultyMembers = faulty.toArray(new Member[0]); if (realFaultyMembers.length != 0) { backup = excludeFromSet(realFaultyMembers, backup); if (backup.length == 0) { diff --git a/java/org/apache/catalina/tribes/transport/bio/MultipointBioSender.java b/java/org/apache/catalina/tribes/transport/bio/MultipointBioSender.java index d6a106b..677eb62 100644 --- a/java/org/apache/catalina/tribes/transport/bio/MultipointBioSender.java +++ b/java/org/apache/catalina/tribes/transport/bio/MultipointBioSender.java @@ -148,7 +148,7 @@ public class MultipointBioSender extends AbstractSender implements MultiPointSen public boolean keepalive() { boolean result = false; @SuppressWarnings("unchecked") - Map.Entry<Member,BioSender>[] entries = bioSenders.entrySet().toArray(new Map.Entry[bioSenders.size()]); + Map.Entry<Member,BioSender>[] entries = bioSenders.entrySet().toArray(new Map.Entry[0]); for ( int i=0; i<entries.length; i++ ) { BioSender sender = entries[i].getValue(); if ( sender.keepalive() ) { diff --git a/java/org/apache/catalina/tribes/util/Arrays.java b/java/org/apache/catalina/tribes/util/Arrays.java index e3fc149..ffbf84b 100644 --- a/java/org/apache/catalina/tribes/util/Arrays.java +++ b/java/org/apache/catalina/tribes/util/Arrays.java @@ -163,7 +163,7 @@ public class Arrays { if ( ignore!=null && ignore.equals(comp[i]) ) continue; if ( local.getMember(comp[i]) == null ) result.add(comp[i]); } - return result.toArray(new MemberImpl[result.size()]); + return result.toArray(new MemberImpl[0]); } public static Member[] remove(Member[] all, Member remove) { @@ -174,7 +174,7 @@ public class Arrays { List<Member> alist = java.util.Arrays.asList(all); ArrayList<Member> list = new ArrayList<Member>(alist); for (int i=0; i<remove.length; i++ ) list.remove(remove[i]); - return list.toArray(new Member[list.size()]); + return list.toArray(new Member[0]); } public static int indexOf(Member member, Member[] members) { diff --git a/java/org/apache/catalina/valves/StuckThreadDetectionValve.java b/java/org/apache/catalina/valves/StuckThreadDetectionValve.java index 6acaaca..a0ad2f4 100644 --- a/java/org/apache/catalina/valves/StuckThreadDetectionValve.java +++ b/java/org/apache/catalina/valves/StuckThreadDetectionValve.java @@ -285,7 +285,7 @@ public class StuckThreadDetectionValve extends ValveBase { nameList.add(monitoredThread.getThread().getName()); } } - return nameList.toArray(new String[nameList.size()]); + return nameList.toArray(new String[0]); } public long getInterruptedThreadsCount() { diff --git a/java/org/apache/el/parser/AstMethodParameters.java b/java/org/apache/el/parser/AstMethodParameters.java index 2c0583d..223531c 100644 --- a/java/org/apache/el/parser/AstMethodParameters.java +++ b/java/org/apache/el/parser/AstMethodParameters.java @@ -32,7 +32,7 @@ public final class AstMethodParameters extends SimpleNode { for (int i = 0; i < this.jjtGetNumChildren(); i++) { params.add(this.jjtGetChild(i).getValue(ctx)); } - return params.toArray(new Object[params.size()]); + return params.toArray(new Object[0]); } public Class<?>[] getParameterTypes(EvaluationContext ctx) { diff --git a/java/org/apache/jasper/compiler/JavacErrorDetail.java b/java/org/apache/jasper/compiler/JavacErrorDetail.java index 3c01777..89debc7 100644 --- a/java/org/apache/jasper/compiler/JavacErrorDetail.java +++ b/java/org/apache/jasper/compiler/JavacErrorDetail.java @@ -237,6 +237,6 @@ public class JavacErrorDetail { lines.add(line); } - return lines.toArray( new String[lines.size()] ); + return lines.toArray(new String[0]); } } diff --git a/java/org/apache/jasper/compiler/Validator.java b/java/org/apache/jasper/compiler/Validator.java index d62d46a..b02c558 100644 --- a/java/org/apache/jasper/compiler/Validator.java +++ b/java/org/apache/jasper/compiler/Validator.java @@ -1687,7 +1687,7 @@ class Validator { } start = p + 1; } - return params.toArray(new String[params.size()]); + return params.toArray(new String[0]); } private FunctionMapper getFunctionMapper(ELNode.Nodes el) diff --git a/java/org/apache/naming/factory/webservices/ServiceRefFactory.java b/java/org/apache/naming/factory/webservices/ServiceRefFactory.java index 299ae4a..58dc40f 100644 --- a/java/org/apache/naming/factory/webservices/ServiceRefFactory.java +++ b/java/org/apache/naming/factory/webservices/ServiceRefFactory.java @@ -290,7 +290,7 @@ public class ServiceRefFactory implements ObjectFactory { // Set the handlers informations handlerInfo.setHandlerClass(handlerClass); - handlerInfo.setHeaders(headers.toArray(new QName[headers.size()])); + handlerInfo.setHeaders(headers.toArray(new QName[0])); handlerInfo.setHandlerConfig(config); if (!portNames.isEmpty()) { diff --git a/java/org/apache/tomcat/dbcp/dbcp/PoolablePreparedStatement.java b/java/org/apache/tomcat/dbcp/dbcp/PoolablePreparedStatement.java index bb6ebf4..46fca9a 100644 --- a/java/org/apache/tomcat/dbcp/dbcp/PoolablePreparedStatement.java +++ b/java/org/apache/tomcat/dbcp/dbcp/PoolablePreparedStatement.java @@ -129,7 +129,7 @@ public class PoolablePreparedStatement<K> extends DelegatingPreparedStatement { // See bug 17301 for what could happen when ResultSets are closed twice. List<AbandonedTrace> resultSets = getTrace(); if( resultSets != null) { - ResultSet[] set = resultSets.toArray(new ResultSet[resultSets.size()]); + ResultSet[] set = resultSets.toArray(new ResultSet[0]); for (int i = 0; i < set.length; i++) { set[i].close(); } diff --git a/java/org/apache/tomcat/util/http/Parameters.java b/java/org/apache/tomcat/util/http/Parameters.java index c7cd7b4..4886478 100644 --- a/java/org/apache/tomcat/util/http/Parameters.java +++ b/java/org/apache/tomcat/util/http/Parameters.java @@ -157,7 +157,7 @@ public final class Parameters { if (values == null) { return null; } - return values.toArray(new String[values.size()]); + return values.toArray(new String[0]); } public Enumeration<String> getParameterNames() { diff --git a/java/org/apache/tomcat/util/modeler/BaseAttributeFilter.java b/java/org/apache/tomcat/util/modeler/BaseAttributeFilter.java index 8f8b25d..9bf6241 100644 --- a/java/org/apache/tomcat/util/modeler/BaseAttributeFilter.java +++ b/java/org/apache/tomcat/util/modeler/BaseAttributeFilter.java @@ -104,7 +104,7 @@ public class BaseAttributeFilter implements NotificationFilter { public String[] getNames() { synchronized (names) { - return names.toArray(new String[names.size()]); + return names.toArray(new String[0]); } } diff --git a/test/org/apache/tomcat/unittest/TesterContext.java b/test/org/apache/tomcat/unittest/TesterContext.java index 781f25e..3d307aa 100644 --- a/test/org/apache/tomcat/unittest/TesterContext.java +++ b/test/org/apache/tomcat/unittest/TesterContext.java @@ -86,7 +86,7 @@ public class TesterContext implements Context { @Override public String[] findSecurityRoles() { - return securityRoles.toArray(new String[securityRoles.size()]); + return securityRoles.toArray(new String[0]); } @Override @@ -103,8 +103,7 @@ public class TesterContext implements Context { @Override public SecurityConstraint[] findConstraints() { - return securityConstraints.toArray( - new SecurityConstraint[securityConstraints.size()]); + return securityConstraints.toArray(new SecurityConstraint[0]); } @Override diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 93f1283..187dab2 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -188,6 +188,10 @@ Refactor to use parameterized <code>Collection</code> constructors where possible. Pull request provided by Lars Grefer. (markt) </scode> + <scode> + Refactor to use empty arrays with <code>Collections.toArray()</code>. + Pull request provided by Lars Grefer. (markt) + </scode> </changelog> </subsection> </section> diff --git a/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java b/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java index c529295..1dc0559 100644 --- a/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java +++ b/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java @@ -130,8 +130,7 @@ public class CompressionFilter implements Filter { } if (values.size() > 0) { - compressionMimeTypes = values.toArray( - new String[values.size()]); + 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