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;
}