[COMPRESS-350] TarArchiveEntry wastefully allocates empty arrays. Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/9cc0604f Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/9cc0604f Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/9cc0604f
Branch: refs/heads/COMPRESS-207 Commit: 9cc0604f7fdab2b23ead5f72a93feb2196660736 Parents: ab17a70 Author: ggregory <ggreg...@apache.org> Authored: Sat Apr 9 09:10:36 2016 -0700 Committer: ggregory <ggreg...@apache.org> Committed: Sat Apr 9 09:10:36 2016 -0700 ---------------------------------------------------------------------- src/changes/changes.xml | 5 ++++- .../commons/compress/archivers/tar/TarArchiveEntry.java | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-compress/blob/9cc0604f/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 86527c7..8632ce0 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -44,9 +44,12 @@ The <action> type attribute can be add,update,fix,remove. <body> <release version="1.12" date="not released, yet" description="Release 1.12"> - <action issue="COMPRESS-349" type="update" date="2016-04-09"> + <action issue="COMPRESS-349" type="update" date="2016-04-09" dev="ggregory"> Update requirement from Java 5 to 6. </action> + <action issue="COMPRESS-350" type="update" date="2016-04-09" dev="ggregory"> + TarArchiveEntry wastefully allocates empty arrays. + </action> </release> <release version="1.11" date="2016-04-06" description="Release 1.11"> http://git-wip-us.apache.org/repos/asf/commons-compress/blob/9cc0604f/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java index 4fac7d5..00a3edd 100644 --- a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java +++ b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java @@ -143,6 +143,8 @@ import org.apache.commons.compress.utils.ArchiveUtils; */ public class TarArchiveEntry implements TarConstants, ArchiveEntry { + private static final TarArchiveEntry[] EMPTY_TAR_ARCHIVE_ENTRIES = new TarArchiveEntry[0]; + /** The entry's name. */ private String name = ""; @@ -945,11 +947,14 @@ public class TarArchiveEntry implements TarConstants, ArchiveEntry { */ public TarArchiveEntry[] getDirectoryEntries() { if (file == null || !file.isDirectory()) { - return new TarArchiveEntry[0]; + return EMPTY_TAR_ARCHIVE_ENTRIES; } String[] list = file.list(); - TarArchiveEntry[] result = new TarArchiveEntry[list == null ? 0 : list.length]; + if (list == null) { + return EMPTY_TAR_ARCHIVE_ENTRIES; + } + TarArchiveEntry[] result = new TarArchiveEntry[list.length]; for (int i = 0; i < result.length; ++i) { result[i] = new TarArchiveEntry(new File(file, list[i]));