Arrays.copyOf requires Java6

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/compress/trunk@1653370 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java b/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java
index 6082758..6ee9dbb 100644
--- a/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java
+++ b/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java
@@ -366,11 +366,17 @@
     }
 
     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);
+        final ZipExtraField[] zipExtraFields = copyOf(extraFields, extraFields.length + 1);
         zipExtraFields[zipExtraFields.length] = unparseableExtra;
         return zipExtraFields;
     }
@@ -401,7 +407,7 @@
                 if (getExtraField(ze.getHeaderId())!= null){
                     removeExtraField(ze.getHeaderId());
                 }
-                final ZipExtraField[] zipExtraFields = Arrays.copyOf(extraFields, extraFields.length + 1);
+                final ZipExtraField[] zipExtraFields = copyOf(extraFields, extraFields.length + 1);
                 zipExtraFields[zipExtraFields.length -1] = ze;
                 extraFields = zipExtraFields;
             }