diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 0a0d0fb4a..e78bd62e9 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -214,6 +214,7 @@ Larry Streepy
Les Hughes
Levi Cook
lucas
+Lucas Werkmeister
Ludovic Claude
Maarten Coene
Magesh Umasankar
diff --git a/WHATSNEW b/WHATSNEW
index 0cacc73f8..6db5548de 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -7,6 +7,10 @@ Changes that could break older environments:
Fixed bugs:
-----------
+ * ArrayIndexOutOfBoundsException when ZIP extra fields are read and
+ the entry contains an UnparseableExtraField.
+ https://issues.apache.org/jira/browse/COMPRESS-317
+
Other changes:
--------------
diff --git a/contributors.xml b/contributors.xml
index d7c7162c8..7ea115e35 100644
--- a/contributors.xml
+++ b/contributors.xml
@@ -882,6 +882,10 @@
lucas
+
+ Lucas
+ Werkmeister
+
Ludovic
Claude
diff --git a/src/main/org/apache/tools/zip/ZipEntry.java b/src/main/org/apache/tools/zip/ZipEntry.java
index f66baf228..30a8155bd 100644
--- a/src/main/org/apache/tools/zip/ZipEntry.java
+++ b/src/main/org/apache/tools/zip/ZipEntry.java
@@ -361,7 +361,7 @@ public class ZipEntry extends java.util.zip.ZipEntry implements Cloneable {
private ZipExtraField[] getMergedFields() {
final ZipExtraField[] zipExtraFields =
copyOf(extraFields, extraFields.length + 1);
- zipExtraFields[zipExtraFields.length] = unparseableExtra;
+ zipExtraFields[extraFields.length] = unparseableExtra;
return zipExtraFields;
}