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 2020/04/22 15:13:41 UTC
[tomcat] branch 7.0.x updated: Use empty arrays for
Collections.toArray()
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 <la...@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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org