diff options
Diffstat (limited to 'libjava/java/util')
-rw-r--r-- | libjava/java/util/zip/ZipFile.java | 4 | ||||
-rw-r--r-- | libjava/java/util/zip/natInflater.cc | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/libjava/java/util/zip/ZipFile.java b/libjava/java/util/zip/ZipFile.java index 5e01d57..7825786 100644 --- a/libjava/java/util/zip/ZipFile.java +++ b/libjava/java/util/zip/ZipFile.java @@ -133,7 +133,9 @@ public class ZipFile implements ZipConstants InputStream is = new ByteArrayInputStream (buffer); if (ze.getMethod() == ZipEntry.DEFLATED) - is = new InflaterInputStream (is); + // Data in zipfile entries does not have a zlib header, so construct + // an Inflater with the `nowrapper' option. + is = new InflaterInputStream (is, new Inflater (true), 512); return is; } diff --git a/libjava/java/util/zip/natInflater.cc b/libjava/java/util/zip/natInflater.cc index 312027a..f3d258c 100644 --- a/libjava/java/util/zip/natInflater.cc +++ b/libjava/java/util/zip/natInflater.cc @@ -117,7 +117,8 @@ java::util::zip::Inflater::inflate (jbyteArray buf, jint off, jint len) break; case Z_DATA_ERROR: - _Jv_Throw (new java::util::zip::DataFormatException); + _Jv_Throw (new java::util::zip::DataFormatException + (s->msg == NULL ? NULL : JvNewStringLatin1 (s->msg))); break; case Z_MEM_ERROR: |