From 66b5f3f06ba641ffd22428b8da4f8b14ff45db53 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Tue, 20 Jan 2015 21:59:36 +0100 Subject: [PATCH] Arrays.copyOf is Java 1.6 only --- src/main/org/apache/tools/zip/ZipEntry.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/org/apache/tools/zip/ZipEntry.java b/src/main/org/apache/tools/zip/ZipEntry.java index f463757c8..f66baf228 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; }