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
This commit is contained in:
parent
dac2c906db
commit
941b08f273
2 changed files with 18 additions and 2 deletions
|
@ -1,3 +1,13 @@
|
|||
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.
|
||||
|
||||
2002-09-25 Michael Koch <konqueror@gmx.de>
|
||||
|
||||
* java/net/DatagramSocket.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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue