aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/util
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/util')
-rw-r--r--libjava/java/util/zip/ZipFile.java4
-rw-r--r--libjava/java/util/zip/natInflater.cc3
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: