Repository: ant
Updated Branches:
  refs/heads/master 0903005b8 -> 66b5f3f06


Arrays.copyOf is Java 1.6 only


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

Branch: refs/heads/master
Commit: 66b5f3f06ba641ffd22428b8da4f8b14ff45db53
Parents: 0903005
Author: Stefan Bodewig <[email protected]>
Authored: Tue Jan 20 21:59:36 2015 +0100
Committer: Stefan Bodewig <[email protected]>
Committed: Tue Jan 20 21:59:36 2015 +0100

----------------------------------------------------------------------
 src/main/org/apache/tools/zip/ZipEntry.java | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/66b5f3f0/src/main/org/apache/tools/zip/ZipEntry.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/zip/ZipEntry.java 
b/src/main/org/apache/tools/zip/ZipEntry.java
index f463757..f66baf2 100644
--- a/src/main/org/apache/tools/zip/ZipEntry.java
+++ b/src/main/org/apache/tools/zip/ZipEntry.java
@@ -349,12 +349,18 @@ public class ZipEntry extends java.util.zip.ZipEntry 
implements Cloneable {
     }
 
     private ZipExtraField[] copyOf(ZipExtraField[] src){
-        return Arrays.copyOf(src, src.length);
+        return copyOf(src, src.length);
+    }
+
+    private ZipExtraField[] copyOf(ZipExtraField[] src, int length){
+        ZipExtraField[] cpy = new ZipExtraField[length];
+        System.arraycopy(src, 0, cpy, 0, Math.min(src.length, length));
+        return cpy;
     }
 
     private ZipExtraField[] getMergedFields() {
         final ZipExtraField[] zipExtraFields =
-            Arrays.copyOf(extraFields, extraFields.length + 1);
+            copyOf(extraFields, extraFields.length + 1);
         zipExtraFields[zipExtraFields.length] = unparseableExtra;
         return zipExtraFields;
     }
@@ -367,7 +373,7 @@ public class ZipEntry extends java.util.zip.ZipEntry 
implements Cloneable {
     private ZipExtraField[] getAllExtraFields() {
         final ZipExtraField[] allExtraFieldsNoCopy = getAllExtraFieldsNoCopy();
         return (allExtraFieldsNoCopy == extraFields)
-            ? copyOf( allExtraFieldsNoCopy) : allExtraFieldsNoCopy;
+            ? copyOf(allExtraFieldsNoCopy) : allExtraFieldsNoCopy;
     }
 
     /**
@@ -401,7 +407,7 @@ public class ZipEntry extends java.util.zip.ZipEntry 
implements Cloneable {
                     removeExtraField(ze.getHeaderId());
                 }
                 final ZipExtraField[] zipExtraFields =
-                    Arrays.copyOf(extraFields, extraFields.length + 1);
+                    copyOf(extraFields, extraFields.length + 1);
                 zipExtraFields[extraFields.length] = ze;
                 extraFields = zipExtraFields;
             }

Reply via email to