You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2021/09/25 11:44:53 UTC

[ant] branch master updated: Use an empty array in favor of pre-sized array.

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

bodewig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ant.git


The following commit(s) were added to refs/heads/master by this push:
     new fbb4262  Use an empty array in favor of pre-sized array.
     new 76c97ce  Merge pull request #159 from arturobernalg/feature/array_pre_size
fbb4262 is described below

commit fbb42627adc6dd07cfb5ab84c767dc9508fe4742
Author: Arturo Bernal <ar...@gmail.com>
AuthorDate: Tue Aug 31 21:34:01 2021 +0200

    Use an empty array in favor of pre-sized array.
---
 .../org/apache/tools/ant/DirectoryScanner.java     | 25 +++++++++++-----------
 src/main/org/apache/tools/ant/Project.java         |  2 +-
 src/main/org/apache/tools/ant/Target.java          |  2 +-
 src/main/org/apache/tools/ant/launch/Launcher.java |  4 ++--
 .../org/apache/tools/ant/taskdefs/Checksum.java    |  2 +-
 src/main/org/apache/tools/ant/taskdefs/Copy.java   |  6 +++---
 .../org/apache/tools/ant/taskdefs/ExecuteOn.java   |  6 +++---
 src/main/org/apache/tools/ant/taskdefs/Tar.java    |  2 +-
 src/main/org/apache/tools/ant/taskdefs/Zip.java    | 10 ++++-----
 .../tools/ant/taskdefs/cvslib/ChangeLogParser.java |  4 ++--
 .../tools/ant/taskdefs/cvslib/ChangeLogTask.java   |  2 +-
 .../tools/ant/taskdefs/cvslib/CvsTagDiff.java      |  2 +-
 .../tools/ant/taskdefs/optional/NetRexxC.java      |  2 +-
 .../ant/taskdefs/optional/ejb/IPlanetEjbc.java     |  4 ++--
 .../ant/taskdefs/optional/extension/Extension.java |  2 +-
 .../taskdefs/optional/extension/ExtensionSet.java  |  2 +-
 .../taskdefs/optional/extension/ExtensionUtil.java |  2 +-
 .../taskdefs/optional/extension/Specification.java |  2 +-
 .../optional/junitlauncher/LauncherSupport.java    |  2 +-
 .../junitlauncher/confined/SingleTestClass.java    |  2 +-
 .../junitlauncher/confined/TestDefinition.java     |  2 +-
 .../ant/taskdefs/rmic/DefaultRmicAdapter.java      |  2 +-
 .../apache/tools/ant/types/AbstractFileSet.java    |  2 +-
 .../apache/tools/ant/types/AntFilterReader.java    |  2 +-
 .../org/apache/tools/ant/types/ArchiveScanner.java |  4 ++--
 .../org/apache/tools/ant/types/Commandline.java    |  6 +++---
 .../apache/tools/ant/types/CommandlineJava.java    |  4 ++--
 src/main/org/apache/tools/ant/types/FileList.java  |  4 ++--
 src/main/org/apache/tools/ant/types/Path.java      |  2 +-
 .../apache/tools/ant/types/RedirectorElement.java  |  2 +-
 .../tools/ant/types/optional/ScriptMapper.java     |  2 +-
 .../types/selectors/AbstractSelectorContainer.java |  2 +-
 .../ant/types/selectors/BaseSelectorContainer.java |  2 +-
 .../tools/ant/types/selectors/ExtendSelector.java  |  2 +-
 src/main/org/apache/tools/zip/ZipEntry.java        |  4 ++--
 35 files changed, 63 insertions(+), 64 deletions(-)

diff --git a/src/main/org/apache/tools/ant/DirectoryScanner.java b/src/main/org/apache/tools/ant/DirectoryScanner.java
index 3b50400..045fdbf 100644
--- a/src/main/org/apache/tools/ant/DirectoryScanner.java
+++ b/src/main/org/apache/tools/ant/DirectoryScanner.java
@@ -570,8 +570,7 @@ public class DirectoryScanner
      */
     public static String[] getDefaultExcludes() {
         synchronized (defaultExcludes) {
-            return defaultExcludes.toArray(new String[defaultExcludes
-                                                                 .size()]);
+            return defaultExcludes.toArray(new String[0]);
         }
     }
 
@@ -1228,7 +1227,7 @@ public class DirectoryScanner
                     noLinks.add(newFile);
                 }
             }
-            newFiles = noLinks.toArray(new String[noLinks.size()]);
+            newFiles = noLinks.toArray(new String[0]);
         } else {
             directoryNamesFollowed.addFirst(dir.getName());
         }
@@ -1522,7 +1521,7 @@ public class DirectoryScanner
             if (filesIncluded == null) {
                 throw new IllegalStateException("Must call scan() first");
             }
-            files = filesIncluded.toArray(new String[filesIncluded.size()]);
+            files = filesIncluded.toArray(new String[0]);
         }
         Arrays.sort(files);
         return files;
@@ -1553,7 +1552,7 @@ public class DirectoryScanner
     @Override
     public synchronized String[] getNotIncludedFiles() {
         slowScan();
-        return filesNotIncluded.toArray(new String[filesNotIncluded.size()]);
+        return filesNotIncluded.toArray(new String[0]);
     }
 
     /**
@@ -1570,7 +1569,7 @@ public class DirectoryScanner
     @Override
     public synchronized String[] getExcludedFiles() {
         slowScan();
-        return filesExcluded.toArray(new String[filesExcluded.size()]);
+        return filesExcluded.toArray(new String[0]);
     }
 
     /**
@@ -1587,7 +1586,7 @@ public class DirectoryScanner
     @Override
     public synchronized String[] getDeselectedFiles() {
         slowScan();
-        return filesDeselected.toArray(new String[filesDeselected.size()]);
+        return filesDeselected.toArray(new String[0]);
     }
 
     /**
@@ -1605,7 +1604,7 @@ public class DirectoryScanner
             if (dirsIncluded == null) {
                 throw new IllegalStateException("Must call scan() first");
             }
-            directories = dirsIncluded.toArray(new String[dirsIncluded.size()]);
+            directories = dirsIncluded.toArray(new String[0]);
         }
         Arrays.sort(directories);
         return directories;
@@ -1636,7 +1635,7 @@ public class DirectoryScanner
     @Override
     public synchronized String[] getNotIncludedDirectories() {
         slowScan();
-        return dirsNotIncluded.toArray(new String[dirsNotIncluded.size()]);
+        return dirsNotIncluded.toArray(new String[0]);
     }
 
     /**
@@ -1653,7 +1652,7 @@ public class DirectoryScanner
     @Override
     public synchronized String[] getExcludedDirectories() {
         slowScan();
-        return dirsExcluded.toArray(new String[dirsExcluded.size()]);
+        return dirsExcluded.toArray(new String[0]);
     }
 
     /**
@@ -1670,7 +1669,7 @@ public class DirectoryScanner
     @Override
     public synchronized String[] getDeselectedDirectories() {
         slowScan();
-        return dirsDeselected.toArray(new String[dirsDeselected.size()]);
+        return dirsDeselected.toArray(new String[0]);
     }
 
     /**
@@ -1685,7 +1684,7 @@ public class DirectoryScanner
     public synchronized String[] getNotFollowedSymlinks() {
         String[] links;
         synchronized (this) {
-            links = notFollowedSymlinks.toArray(new String[notFollowedSymlinks.size()]);
+            links = notFollowedSymlinks.toArray(new String[0]);
         }
         Arrays.sort(links);
         return links;
@@ -1783,7 +1782,7 @@ public class DirectoryScanner
                 map.put(s, new TokenizedPath(s));
             }
         }
-        return al.toArray(new TokenizedPattern[al.size()]);
+        return al.toArray(new TokenizedPattern[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/Project.java b/src/main/org/apache/tools/ant/Project.java
index 6104e53..5b20ca0 100644
--- a/src/main/org/apache/tools/ant/Project.java
+++ b/src/main/org/apache/tools/ant/Project.java
@@ -1261,7 +1261,7 @@ public class Project implements ResourceFactory {
     public void executeTargets(final Vector<String> names) throws BuildException {
         setUserProperty(MagicNames.PROJECT_INVOKED_TARGETS,
                 String.join(",", names));
-        getExecutor().executeTargets(this, names.toArray(new String[names.size()]));
+        getExecutor().executeTargets(this, names.toArray(new String[0]));
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/Target.java b/src/main/org/apache/tools/ant/Target.java
index 53473ca..af8bfad 100644
--- a/src/main/org/apache/tools/ant/Target.java
+++ b/src/main/org/apache/tools/ant/Target.java
@@ -232,7 +232,7 @@ public class Target implements TaskContainer {
                 tasks.add((Task) o);
             }
         }
-        return tasks.toArray(new Task[tasks.size()]);
+        return tasks.toArray(new Task[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/launch/Launcher.java b/src/main/org/apache/tools/ant/launch/Launcher.java
index e10e713..cad6359 100644
--- a/src/main/org/apache/tools/ant/launch/Launcher.java
+++ b/src/main/org/apache/tools/ant/launch/Launcher.java
@@ -245,7 +245,7 @@ public class Launcher {
         if (argList.size() == args.length) {
             newArgs = args;
         } else {
-            newArgs = argList.toArray(new String[argList.size()]);
+            newArgs = argList.toArray(new String[0]);
         }
 
         final URL[] libURLs    = getLibPathURLs(
@@ -327,7 +327,7 @@ public class Launcher {
             addPath(libPath, true, libPathURLs);
         }
 
-        return libPathURLs.toArray(new URL[libPathURLs.size()]);
+        return libPathURLs.toArray(new URL[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/Checksum.java b/src/main/org/apache/tools/ant/taskdefs/Checksum.java
index 2faf92e..a1b78aa 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Checksum.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Checksum.java
@@ -544,7 +544,7 @@ public class Checksum extends MatchingTask implements Condition {
             if (totalproperty != null) {
                 // Calculate the total checksum
                 // Convert the keys (source files) into a sorted array.
-                File[] keyArray = allDigests.keySet().toArray(new File[allDigests.size()]);
+                File[] keyArray = allDigests.keySet().toArray(new File[0]);
                 // File is Comparable, but sort-order is platform
                 // dependent (case-insensitive on Windows)
                 Arrays.sort(keyArray, Comparator.nullsFirst(
diff --git a/src/main/org/apache/tools/ant/taskdefs/Copy.java b/src/main/org/apache/tools/ant/taskdefs/Copy.java
index 013f459..4851bac 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Copy.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Copy.java
@@ -577,7 +577,7 @@ public class Copy extends Task {
 
             if (!nonFileResources.isEmpty() || singleResource != null) {
                 final Resource[] nonFiles =
-                    nonFileResources.toArray(new Resource[nonFileResources.size()]);
+                    nonFileResources.toArray(new Resource[0]);
                 // restrict to out-of-date resources
                 final Map<Resource, String[]> map = scan(nonFiles, destDir);
                 if (singleResource != null) {
@@ -779,7 +779,7 @@ public class Copy extends Task {
                     v.add(name);
                 }
             }
-            toCopy = v.toArray(new String[v.size()]);
+            toCopy = v.toArray(new String[0]);
         } else {
             final SourceFileScanner ds = new SourceFileScanner(this);
             toCopy = ds.restrict(names, fromDir, toDir, mapper, granularity);
@@ -824,7 +824,7 @@ public class Copy extends Task {
                     v.add(rc);
                 }
             }
-            toCopy = v.toArray(new Resource[v.size()]);
+            toCopy = v.toArray(new Resource[0]);
         } else {
             toCopy = ResourceUtils.selectOutOfDateSources(this, fromResources, mapper,
                     name -> new FileResource(toDir, name), granularity);
diff --git a/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java b/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java
index 7dca1ba..bbc9dbb 100644
--- a/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java
+++ b/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java
@@ -539,7 +539,7 @@ public class ExecuteOn extends ExecTask {
                 }
             }
         }
-        String[] targetFiles = targets.toArray(new String[targets.size()]);
+        String[] targetFiles = targets.toArray(new String[0]);
 
         if (!addSourceFile) {
             srcFiles = new String[0];
@@ -687,8 +687,8 @@ public class ExecuteOn extends ExecTask {
     protected void runParallel(Execute exe, Vector<String> fileNames,
                                Vector<File> baseDirs)
         throws IOException, BuildException {
-        String[] s = fileNames.toArray(new String[fileNames.size()]);
-        File[] b = baseDirs.toArray(new File[baseDirs.size()]);
+        String[] s = fileNames.toArray(new String[0]);
+        File[] b = baseDirs.toArray(new File[0]);
 
         if (maxParallel <= 0 || s.length == 0 /* this is skipEmpty == false */) {
             String[] command = getCommandline(s, b);
diff --git a/src/main/org/apache/tools/ant/taskdefs/Tar.java b/src/main/org/apache/tools/ant/taskdefs/Tar.java
index 76446fd..1c27ac8 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Tar.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Tar.java
@@ -660,7 +660,7 @@ public class Tar extends MatchingTask {
      * @since Ant 1.9.5
      */
     protected boolean check(final File basedir, final Collection<String> files) {
-        return check(basedir, files.toArray(new String[files.size()]));
+        return check(basedir, files.toArray(new String[0]));
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/Zip.java b/src/main/org/apache/tools/ant/taskdefs/Zip.java
index aa95aa2..b694057 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Zip.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Zip.java
@@ -663,7 +663,7 @@ public class Zip extends MatchingTask {
         vfss.addAll(resources);
 
         final ResourceCollection[] fss =
-            vfss.toArray(new ResourceCollection[vfss.size()]);
+            vfss.toArray(new ResourceCollection[0]);
 
         boolean success = false;
         try {
@@ -1255,11 +1255,11 @@ public class Zip extends MatchingTask {
             }
         }
         final ResourceCollection[] rc =
-            rest.toArray(new ResourceCollection[rest.size()]);
+            rest.toArray(new ResourceCollection[0]);
         ArchiveState as = getNonFileSetResourcesToAdd(rc, zipFile,
                                                       needsUpdate);
 
-        final FileSet[] fs = filesets.toArray(new FileSet[filesets.size()]);
+        final FileSet[] fs = filesets.toArray(new FileSet[0]);
         final ArchiveState as2 = getResourcesToAdd(fs, zipFile, as.isOutOfDate());
         if (!as.isOutOfDate() && as2.isOutOfDate()) {
             /*
@@ -1602,7 +1602,7 @@ public class Zip extends MatchingTask {
                     resources.add(rs.getResource(f));
                 }
             }
-            result[i] = resources.toArray(new Resource[resources.size()]);
+            result[i] = resources.toArray(new Resource[0]);
         }
         return result;
     }
@@ -1632,7 +1632,7 @@ public class Zip extends MatchingTask {
             dirs.sort(Comparator.comparing(Resource::getName));
             final List<Resource> rs = new ArrayList<>(dirs);
             rs.addAll(files);
-            result[i] = rs.toArray(new Resource[rs.size()]);
+            result[i] = rs.toArray(new Resource[0]);
         }
         return result;
     }
diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java
index bb1918c..7c862e9 100644
--- a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java
+++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java
@@ -85,7 +85,7 @@ class ChangeLogParser {
         }
         modules.stream().map(Module::getName).forEach(names::add);
 
-        moduleNames = names.toArray(new String[names.size()]);
+        moduleNames = names.toArray(new String[0]);
         moduleNameLengths = new int[moduleNames.length];
         for (int i = 0; i < moduleNames.length; i++) {
             moduleNameLengths[i] = moduleNames[i].length();
@@ -102,7 +102,7 @@ class ChangeLogParser {
      * @return a list of rcs entries as an array
      */
     public CVSEntry[] getEntrySetAsArray() {
-        return entries.values().toArray(new CVSEntry[entries.size()]);
+        return entries.values().toArray(new CVSEntry[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
index 29962f9..c84f610 100644
--- a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
@@ -391,7 +391,7 @@ public class ChangeLogTask extends AbstractCvsTask {
             results.add(cvsEntry);
         }
 
-        return results.toArray(new CVSEntry[results.size()]);
+        return results.toArray(new CVSEntry[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java
index e01dd6e..bc50afa 100644
--- a/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java
+++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java
@@ -329,7 +329,7 @@ public class CvsTagDiff extends AbstractCvsTask {
                 line = reader.readLine();
             }
 
-            return entries.toArray(new CvsTagEntry[entries.size()]);
+            return entries.toArray(new CvsTagEntry[0]);
         } catch (IOException e) {
             throw new BuildException("Error in parsing", e);
         }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java b/src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java
index 26b5e91..083aeed 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java
@@ -905,7 +905,7 @@ public class NetRexxC extends MatchingTask {
         options.add(utf8 ? "-utf8" : "-noutf8");
         options.add("-" + verbose);
 
-        return options.toArray(new String[options.size()]);
+        return options.toArray(new String[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java
index d207a9c..7e5d8cc 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java
@@ -539,7 +539,7 @@ public class IPlanetEjbc {
         arguments.add(ejb.getImplementation().getQualifiedClassName());
 
         /* Convert the List into an Array and return it */
-        return arguments.toArray(new String[arguments.size()]);
+        return arguments.toArray(new String[0]);
     }
 
     /**
@@ -634,7 +634,7 @@ public class IPlanetEjbc {
          *         parsing.
          */
         public EjbInfo[] getEjbs() {
-            return ejbs.values().toArray(new EjbInfo[ejbs.size()]);
+            return ejbs.values().toArray(new EjbInfo[0]);
         }
 
         /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Extension.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Extension.java
index 48b2504..73a7857 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Extension.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Extension.java
@@ -542,7 +542,7 @@ public final class Extension {
         manifest.getEntries().values()
             .forEach(attributes -> getExtension(attributes, results, listKey));
 
-        return results.toArray(new Extension[results.size()]);
+        return results.toArray(new Extension[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionSet.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionSet.java
index 76f11c1..b35aa61 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionSet.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionSet.java
@@ -100,7 +100,7 @@ public class ExtensionSet
         dieOnCircularReference();
         final List<Extension> extensionsList = ExtensionUtil.toExtensions(extensions);
         ExtensionUtil.extractExtensions(proj, extensionsList, extensionsFilesets);
-        return extensionsList.toArray(new Extension[extensionsList.size()]);
+        return extensionsList.toArray(new Extension[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
index da651e9..e83592c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
@@ -100,7 +100,7 @@ public final class ExtensionUtil {
                 loadExtensions(file, extensions, includeImpl, includeURL);
             }
         }
-        return extensions.toArray(new Extension[extensions.size()]);
+        return extensions.toArray(new Extension[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Specification.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Specification.java
index 5c038d4..1cb6833 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Specification.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Specification.java
@@ -178,7 +178,7 @@ public final class Specification {
                 .ifPresent(results::add);
         }
         return removeDuplicates(results)
-            .toArray(new Specification[removeDuplicates(results).size()]);
+            .toArray(new Specification[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LauncherSupport.java b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LauncherSupport.java
index fa92393..b09d266 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LauncherSupport.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LauncherSupport.java
@@ -141,7 +141,7 @@ public class LauncherSupport {
                     try {
                         firstListener.switchedSysOutHandle = trySwitchSysOutErr(testRequest, StreamType.SYS_OUT, originalSysErr);
                         firstListener.switchedSysErrHandle = trySwitchSysOutErr(testRequest, StreamType.SYS_ERR, originalSysErr);
-                        launcher.execute(request, testExecutionListeners.toArray(new TestExecutionListener[testExecutionListeners.size()]));
+                        launcher.execute(request, testExecutionListeners.toArray(new TestExecutionListener[0]));
                     } finally {
                         // switch back sysout/syserr to the original
                         try {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/confined/SingleTestClass.java b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/confined/SingleTestClass.java
index 83ef4cf..25961b8 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/confined/SingleTestClass.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/confined/SingleTestClass.java
@@ -87,7 +87,7 @@ public class SingleTestClass extends TestDefinition implements NamedTest {
         if (!hasMethodsSpecified()) {
             return null;
         }
-        return this.testMethods.toArray(new String[this.testMethods.size()]);
+        return this.testMethods.toArray(new String[0]);
     }
 
     @Override
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/confined/TestDefinition.java b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/confined/TestDefinition.java
index 81b33b3..a3df6d5 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/confined/TestDefinition.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/confined/TestDefinition.java
@@ -140,7 +140,7 @@ public abstract class TestDefinition {
             }
             parts.add(part);
         }
-        return parts.toArray(new String[parts.size()]);
+        return parts.toArray(new String[0]);
     }
 
     protected abstract void toForkedRepresentation(JUnitLauncherTask task, XMLStreamWriter writer) throws XMLStreamException;
diff --git a/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java b/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java
index 9996187..40d18a2 100644
--- a/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java
+++ b/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java
@@ -336,7 +336,7 @@ public abstract class DefaultRmicAdapter implements RmicAdapter {
                 args.add(arg);
             }
         }
-        return args.toArray(new String[args.size()]);
+        return args.toArray(new String[0]);
     }
 
 
diff --git a/src/main/org/apache/tools/ant/types/AbstractFileSet.java b/src/main/org/apache/tools/ant/types/AbstractFileSet.java
index ab5cbbf..a3c5d1b 100644
--- a/src/main/org/apache/tools/ant/types/AbstractFileSet.java
+++ b/src/main/org/apache/tools/ant/types/AbstractFileSet.java
@@ -640,7 +640,7 @@ public abstract class AbstractFileSet extends DataType
             return getRef(getProject()).getSelectors(p);
         }
         dieOnCircularReference(p);
-        return selectors.toArray(new FileSelector[selectors.size()]);
+        return selectors.toArray(new FileSelector[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/AntFilterReader.java b/src/main/org/apache/tools/ant/types/AntFilterReader.java
index bd44487..ceda57a 100644
--- a/src/main/org/apache/tools/ant/types/AntFilterReader.java
+++ b/src/main/org/apache/tools/ant/types/AntFilterReader.java
@@ -138,7 +138,7 @@ public final class AntFilterReader extends DataType {
             getRef().getParams();
         }
         dieOnCircularReference();
-        return parameters.toArray(new Parameter[parameters.size()]);
+        return parameters.toArray(new Parameter[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/ArchiveScanner.java b/src/main/org/apache/tools/ant/types/ArchiveScanner.java
index c0aa12d..ead0005 100644
--- a/src/main/org/apache/tools/ant/types/ArchiveScanner.java
+++ b/src/main/org/apache/tools/ant/types/ArchiveScanner.java
@@ -158,7 +158,7 @@ public abstract class ArchiveScanner extends DirectoryScanner {
             return super.getIncludedFiles();
         }
         scanme();
-        return matchFileEntries.keySet().toArray(new String[matchFileEntries.size()]);
+        return matchFileEntries.keySet().toArray(new String[0]);
     }
 
     /**
@@ -187,7 +187,7 @@ public abstract class ArchiveScanner extends DirectoryScanner {
             return super.getIncludedDirectories();
         }
         scanme();
-        return matchDirEntries.keySet().toArray(new String[matchDirEntries.size()]);
+        return matchDirEntries.keySet().toArray(new String[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/Commandline.java b/src/main/org/apache/tools/ant/types/Commandline.java
index ade5cd0..9537112 100644
--- a/src/main/org/apache/tools/ant/types/Commandline.java
+++ b/src/main/org/apache/tools/ant/types/Commandline.java
@@ -372,7 +372,7 @@ public class Commandline implements Cloneable {
     public String[] getCommandline() {
         final List<String> commands = new LinkedList<>();
         addCommandToList(commands.listIterator());
-        return commands.toArray(new String[commands.size()]);
+        return commands.toArray(new String[0]);
     }
 
     /**
@@ -395,7 +395,7 @@ public class Commandline implements Cloneable {
     public String[] getArguments() {
         List<String> result = new ArrayList<>(arguments.size() * 2);
         addArgumentsToList(result.listIterator());
-        return result.toArray(new String[result.size()]);
+        return result.toArray(new String[0]);
     }
 
     /**
@@ -537,7 +537,7 @@ public class Commandline implements Cloneable {
         if (state == inQuote || state == inDoubleQuote) {
             throw new BuildException("unbalanced quotes in " + toProcess);
         }
-        return result.toArray(new String[result.size()]);
+        return result.toArray(new String[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/CommandlineJava.java b/src/main/org/apache/tools/ant/types/CommandlineJava.java
index 1b2587e..4ad4cc5 100644
--- a/src/main/org/apache/tools/ant/types/CommandlineJava.java
+++ b/src/main/org/apache/tools/ant/types/CommandlineJava.java
@@ -97,7 +97,7 @@ public class CommandlineJava implements Cloneable {
             if (definitions.isEmpty()) {
                 return null;
             }
-            return definitions.toArray(new String[definitions.size()]);
+            return definitions.toArray(new String[0]);
         }
 
         /**
@@ -500,7 +500,7 @@ public class CommandlineJava implements Cloneable {
         //fill it
         addCommandsToList(commands.listIterator());
         //convert to an array
-        return commands.toArray(new String[commands.size()]);
+        return commands.toArray(new String[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/FileList.java b/src/main/org/apache/tools/ant/types/FileList.java
index df54054..4c469b3 100644
--- a/src/main/org/apache/tools/ant/types/FileList.java
+++ b/src/main/org/apache/tools/ant/types/FileList.java
@@ -133,7 +133,7 @@ public class FileList extends DataType implements ResourceCollection {
             throw new BuildException("No files specified for filelist.");
         }
 
-        return filenames.toArray(new String[filenames.size()]);
+        return filenames.toArray(new String[0]);
     }
 
     /**
@@ -184,7 +184,7 @@ public class FileList extends DataType implements ResourceCollection {
             return getRef().iterator();
         }
         return new FileResourceIterator(getProject(), dir,
-            filenames.toArray(new String[filenames.size()]));
+            filenames.toArray(new String[0]));
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/Path.java b/src/main/org/apache/tools/ant/types/Path.java
index 3d2d5c9..46d37bd 100644
--- a/src/main/org/apache/tools/ant/types/Path.java
+++ b/src/main/org/apache/tools/ant/types/Path.java
@@ -420,7 +420,7 @@ public class Path extends DataType implements Cloneable, ResourceCollection {
             }
             result.add(element.toString());
         }
-        return result.toArray(new String[result.size()]);
+        return result.toArray(new String[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/RedirectorElement.java b/src/main/org/apache/tools/ant/types/RedirectorElement.java
index c778ca2..2315da2 100644
--- a/src/main/org/apache/tools/ant/types/RedirectorElement.java
+++ b/src/main/org/apache/tools/ant/types/RedirectorElement.java
@@ -578,7 +578,7 @@ public class RedirectorElement extends DataType {
                 list.add(getProject().resolveFile(n));
             }
         }
-        return list.toArray(new File[list.size()]);
+        return list.toArray(new File[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/optional/ScriptMapper.java b/src/main/org/apache/tools/ant/types/optional/ScriptMapper.java
index f78d7a0..92497b3 100644
--- a/src/main/org/apache/tools/ant/types/optional/ScriptMapper.java
+++ b/src/main/org/apache/tools/ant/types/optional/ScriptMapper.java
@@ -86,6 +86,6 @@ public class ScriptMapper extends AbstractScriptComponent implements FileNameMap
         if (files.isEmpty()) {
             return null;
         }
-        return files.toArray(new String[files.size()]);
+        return files.toArray(new String[0]);
     }
 }
diff --git a/src/main/org/apache/tools/ant/types/selectors/AbstractSelectorContainer.java b/src/main/org/apache/tools/ant/types/selectors/AbstractSelectorContainer.java
index 0614779..8ebad85 100644
--- a/src/main/org/apache/tools/ant/types/selectors/AbstractSelectorContainer.java
+++ b/src/main/org/apache/tools/ant/types/selectors/AbstractSelectorContainer.java
@@ -78,7 +78,7 @@ public abstract class AbstractSelectorContainer extends DataType
             return getRef(p).getSelectors(p);
         }
         dieOnCircularReference(p);
-        return selectorsList.toArray(new FileSelector[selectorsList.size()]);
+        return selectorsList.toArray(new FileSelector[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/selectors/BaseSelectorContainer.java b/src/main/org/apache/tools/ant/types/selectors/BaseSelectorContainer.java
index 9cb8f9e..fcf4413 100644
--- a/src/main/org/apache/tools/ant/types/selectors/BaseSelectorContainer.java
+++ b/src/main/org/apache/tools/ant/types/selectors/BaseSelectorContainer.java
@@ -66,7 +66,7 @@ public abstract class BaseSelectorContainer extends BaseSelector
      */
     public FileSelector[] getSelectors(Project p) {
         dieOnCircularReference();
-        return selectorsList.toArray(new FileSelector[selectorsList.size()]);
+        return selectorsList.toArray(new FileSelector[0]);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/selectors/ExtendSelector.java b/src/main/org/apache/tools/ant/types/selectors/ExtendSelector.java
index 557f438..3da62fd 100644
--- a/src/main/org/apache/tools/ant/types/selectors/ExtendSelector.java
+++ b/src/main/org/apache/tools/ant/types/selectors/ExtendSelector.java
@@ -188,7 +188,7 @@ public class ExtendSelector extends BaseSelector {
         if (!parameters.isEmpty() && dynselector instanceof ExtendFileSelector) {
             // We know that dynselector must be non-null if no error message
             ((ExtendFileSelector) dynselector).setParameters(
-                parameters.toArray(new Parameter[parameters.size()]));
+                parameters.toArray(new Parameter[0]));
         }
         return dynselector.isSelected(basedir, filename, file);
     }
diff --git a/src/main/org/apache/tools/zip/ZipEntry.java b/src/main/org/apache/tools/zip/ZipEntry.java
index 00f0db3..e90d5ff 100644
--- a/src/main/org/apache/tools/zip/ZipEntry.java
+++ b/src/main/org/apache/tools/zip/ZipEntry.java
@@ -316,7 +316,7 @@ public class ZipEntry extends java.util.zip.ZipEntry implements Cloneable {
                 newFields.add(field);
             }
         }
-        extraFields = newFields.toArray(new ZipExtraField[newFields.size()]);
+        extraFields = newFields.toArray(new ZipExtraField[0]);
         setExtra();
     }
 
@@ -467,7 +467,7 @@ public class ZipEntry extends java.util.zip.ZipEntry implements Cloneable {
         if (extraFields.length == newResult.size()) {
             throw new NoSuchElementException();
         }
-        extraFields = newResult.toArray(new ZipExtraField[newResult.size()]);
+        extraFields = newResult.toArray(new ZipExtraField[0]);
         setExtra();
     }