You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by mb...@apache.org on 2017/04/19 15:39:36 UTC

ant git commit: code updates

Repository: ant
Updated Branches:
  refs/heads/master 8d49bb80c -> 1730e18ba


code updates


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/1730e18b
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/1730e18b
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/1730e18b

Branch: refs/heads/master
Commit: 1730e18ba97a6e27f003ec1904244f81d85128e1
Parents: 8d49bb8
Author: Matt Benson <mb...@apache.org>
Authored: Wed Apr 19 10:39:31 2017 -0500
Committer: Matt Benson <mb...@apache.org>
Committed: Wed Apr 19 10:39:31 2017 -0500

----------------------------------------------------------------------
 src/main/org/apache/tools/zip/ZipFile.java | 79 ++++++++++++-------------
 1 file changed, 37 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/1730e18b/src/main/org/apache/tools/zip/ZipFile.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/zip/ZipFile.java b/src/main/org/apache/tools/zip/ZipFile.java
index f963ceb..3f4019a 100644
--- a/src/main/org/apache/tools/zip/ZipFile.java
+++ b/src/main/org/apache/tools/zip/ZipFile.java
@@ -35,10 +35,10 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 import java.util.zip.Inflater;
 import java.util.zip.InflaterInputStream;
 import java.util.zip.ZipException;
@@ -86,13 +86,13 @@ public class ZipFile implements Closeable {
      * List of entries in the order they appear inside the central
      * directory.
      */
-    private final List<ZipEntry> entries = new LinkedList<ZipEntry>();
+    private final List<ZipEntry> entries = new LinkedList<>();
 
     /**
      * Maps String to list of ZipEntrys, name -> actual entries.
      */
     private final Map<String, LinkedList<ZipEntry>> nameMap =
-        new HashMap<String, LinkedList<ZipEntry>>(HASH_SIZE);
+        new HashMap<>(HASH_SIZE);
 
     private static final class OffsetEntry {
         private long headerOffset = -1;
@@ -241,6 +241,7 @@ public class ZipFile implements Closeable {
      * Closes the archive.
      * @throws IOException if an error occurs closing the archive.
      */
+    @Override
     public void close() throws IOException {
         // this flag is only written here and read in finalize() which
         // can never be run in parallel.
@@ -288,9 +289,8 @@ public class ZipFile implements Closeable {
      * @since Ant 1.9.0
      */
     public Enumeration<ZipEntry> getEntriesInPhysicalOrder() {
-        final ZipEntry[] allEntries = entries.toArray(new ZipEntry[0]);
-        Arrays.sort(allEntries, OFFSET_COMPARATOR);
-        return Collections.enumeration(Arrays.asList(allEntries));
+        return entries.stream().sorted(OFFSET_COMPARATOR).collect(Collectors
+            .collectingAndThen(Collectors.toList(), Collections::enumeration));
     }
 
     /**
@@ -322,7 +322,7 @@ public class ZipFile implements Closeable {
     public Iterable<ZipEntry> getEntries(final String name) {
         final List<ZipEntry> entriesOfThatName = nameMap.get(name);
         return entriesOfThatName != null ? entriesOfThatName
-            : Collections.<ZipEntry>emptyList();
+            : Collections.emptyList();
     }
 
     /**
@@ -335,12 +335,11 @@ public class ZipFile implements Closeable {
      * @since 1.9.2
      */
     public Iterable<ZipEntry> getEntriesInPhysicalOrder(final String name) {
-        ZipEntry[] entriesOfThatName = new ZipEntry[0];
         if (nameMap.containsKey(name)) {
-            entriesOfThatName = nameMap.get(name).toArray(entriesOfThatName);
-            Arrays.sort(entriesOfThatName, OFFSET_COMPARATOR);
+            return nameMap.get(name).stream().sorted(OFFSET_COMPARATOR)
+                .collect(Collectors.toList());
         }
-        return Arrays.asList(entriesOfThatName);
+        return Collections.emptyList();
     }
 
     /**
@@ -402,8 +401,8 @@ public class ZipFile implements Closeable {
     protected void finalize() throws Throwable {
         try {
             if (!closed) {
-                System.err.println("Cleaning up unclosed ZipFile for archive "
-                                   + archiveName);
+                System.err.printf("Cleaning up unclosed %s for archive %s%n",
+                    getClass().getSimpleName(), archiveName);
                 close();
             }
         } finally {
@@ -449,8 +448,7 @@ public class ZipFile implements Closeable {
      */
     private Map<ZipEntry, NameAndComment> populateFromCentralDirectory()
         throws IOException {
-        final HashMap<ZipEntry, NameAndComment> noUTF8Flag =
-            new HashMap<ZipEntry, NameAndComment>();
+        final Map<ZipEntry, NameAndComment> noUTF8Flag = new HashMap<>();
 
         positionAtCentralDirectory();
 
@@ -458,8 +456,8 @@ public class ZipFile implements Closeable {
         long sig = ZipLong.getValue(WORD_BUF);
 
         if (sig != CFH_SIG && startsWithLocalFileHeader()) {
-            throw new IOException("central directory is empty, can't expand"
-                                  + " corrupt archive.");
+            throw new IOException(
+                "central directory is empty, can't expand corrupt archive.");
         }
 
         while (sig == CFH_SIG) {
@@ -741,8 +739,8 @@ public class ZipFile implements Closeable {
         archive.seek(ZipEightByteInteger.getLongValue(DWORD_BUF));
         archive.readFully(WORD_BUF);
         if (!Arrays.equals(WORD_BUF, ZipOutputStream.ZIP64_EOCD_SIG)) {
-            throw new ZipException("archive's ZIP64 end of central "
-                                   + "directory locator is corrupt.");
+            throw new ZipException(
+                "archive's ZIP64 end of central directory locator is corrupt.");
         }
         skipBytes(ZIP64_EOCD_CFD_LOCATOR_OFFSET
                   - WORD /* signature has already been read */);
@@ -855,10 +853,10 @@ public class ZipFile implements Closeable {
     private void resolveLocalFileHeaderData(final Map<ZipEntry, NameAndComment>
                                             entriesWithoutUTF8Flag)
         throws IOException {
-        for (final Iterator<ZipEntry> it = entries.iterator(); it.hasNext();) {
+        for (ZipEntry zipEntry : entries) {
             // entries is filled in populateFromCentralDirectory and
             // never modified
-            final Entry ze = (Entry) it.next();
+            final Entry ze = (Entry) zipEntry;
             final OffsetEntry offsetEntry = ze.getOffsetEntry();
             final long offset = offsetEntry.headerOffset;
             archive.seek(offset + LFH_OFFSET_FOR_FILENAME_LENGTH);
@@ -870,8 +868,8 @@ public class ZipFile implements Closeable {
             while (lenToSkip > 0) {
                 final int skipped = archive.skipBytes(lenToSkip);
                 if (skipped <= 0) {
-                    throw new IOException("failed to skip file name in"
-                                          + " local file header");
+                    throw new IOException(
+                        "failed to skip file name in local file header");
                 }
                 lenToSkip -= skipped;
             }
@@ -890,7 +888,7 @@ public class ZipFile implements Closeable {
             final String name = ze.getName();
             LinkedList<ZipEntry> entriesOfThatName = nameMap.get(name);
             if (entriesOfThatName == null) {
-                entriesOfThatName = new LinkedList<ZipEntry>();
+                entriesOfThatName = new LinkedList<>();
                 nameMap.put(name, entriesOfThatName);
             }
             entriesOfThatName.addLast(ze);
@@ -955,7 +953,7 @@ public class ZipFile implements Closeable {
             if (len > remaining) {
                 len = (int) remaining;
             }
-            int ret = -1;
+            int ret;
             synchronized (archive) {
                 archive.seek(loc);
                 ret = archive.read(b, off, len);
@@ -993,25 +991,22 @@ public class ZipFile implements Closeable {
      *
      * @since Ant 1.9.0
      */
-    private final Comparator<ZipEntry> OFFSET_COMPARATOR =
-        new Comparator<ZipEntry>() {
-        public int compare(final ZipEntry e1, final ZipEntry e2) {
-            if (e1 == e2) {
-                return 0;
-            }
+    private final Comparator<ZipEntry> OFFSET_COMPARATOR = (e1, e2) -> {
+        if (e1 == e2) {
+            return 0;
+        }
 
-            final Entry ent1 = e1 instanceof Entry ? (Entry) e1 : null;
-            final Entry ent2 = e2 instanceof Entry ? (Entry) e2 : null;
-            if (ent1 == null) {
-                return 1;
-            }
-            if (ent2 == null) {
-                return -1;
-            }
-            final long val = (ent1.getOffsetEntry().headerOffset
-                        - ent2.getOffsetEntry().headerOffset);
-            return val == 0 ? 0 : val < 0 ? -1 : +1;
+        final Entry ent1 = e1 instanceof Entry ? (Entry) e1 : null;
+        final Entry ent2 = e2 instanceof Entry ? (Entry) e2 : null;
+        if (ent1 == null) {
+            return 1;
+        }
+        if (ent2 == null) {
+            return -1;
         }
+        final long val = (ent1.getOffsetEntry().headerOffset
+                    - ent2.getOffsetEntry().headerOffset);
+        return val == 0 ? 0 : val < 0 ? -1 : +1;
     };
 
     /**