aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/util
diff options
context:
space:
mode:
authorJesse Rosenstock <jmr@ugcs.caltech.edu>2002-09-25 20:10:42 +0000
committerTom Tromey <tromey@gcc.gnu.org>2002-09-25 20:10:42 +0000
commit941b08f2734f6a5cbeaeb9e82fe931fd3badc1ae (patch)
treefa6fb4d0e8106019e332a8703558eafd1598cb53 /libjava/java/util
parentdac2c906db41b589d9c9adda05cf4db40973b47f (diff)
downloadgcc-941b08f2734f6a5cbeaeb9e82fe931fd3badc1ae.zip
gcc-941b08f2734f6a5cbeaeb9e82fe931fd3badc1ae.tar.gz
gcc-941b08f2734f6a5cbeaeb9e82fe931fd3badc1ae.tar.bz2
re PR libgcj/7766 (ZipInputStream.available returns 0 immediately after construction)
2002-09-25 Jesse Rosenstock <jmr@ugcs.caltech.edu> Fix for PR libgcj/7766: * java/util/zip/ZipInputStream.java (entryAtEOF): New field. (getNextEntry): Set it. (closeEntry): Likewise. (read): Likewise. (close): Likewise. (available): Use it. From-SVN: r57513
Diffstat (limited to 'libjava/java/util')
-rw-r--r--libjava/java/util/zip/ZipInputStream.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/libjava/java/util/zip/ZipInputStream.java b/libjava/java/util/zip/ZipInputStream.java
index 63153b6..710ca74 100644
--- a/libjava/java/util/zip/ZipInputStream.java
+++ b/libjava/java/util/zip/ZipInputStream.java
@@ -61,6 +61,7 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
private int method;
private int flags;
private int avail;
+ private boolean entryAtEOF;
/**
* Creates a new Zip input stream, reading a zip archive.
@@ -150,7 +151,8 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
return null;
}
if (header != LOCSIG)
- throw new ZipException("Wrong Local header signature" + Integer.toHexString(header));
+ throw new ZipException("Wrong Local header signature"
+ + Integer.toHexString(header));
/* skip version */
readLeShort();
flags = readLeShort();
@@ -171,6 +173,7 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
String name = new String(buffer);
entry = createZipEntry(name);
+ entryAtEOF = false;
entry.setMethod(method);
if ((flags & 8) == 0)
{
@@ -252,11 +255,12 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
if (method == ZipOutputStream.DEFLATED)
inf.reset();
entry = null;
+ entryAtEOF = true;
}
public int available() throws IOException
{
- return entry != null ? 1 : 0;
+ return entryAtEOF ? 0 : 1;
}
/**
@@ -335,6 +339,7 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
throw new ZipException("CRC mismatch");
crc.reset();
entry = null;
+ entryAtEOF = true;
}
return len;
}
@@ -348,6 +353,7 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
super.close();
crc = null;
entry = null;
+ entryAtEOF = true;
}
/**