+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
private int method;
private int flags;
private int avail;
+ private boolean entryAtEOF;
/**
* Creates a new Zip input stream, reading a zip archive.
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();
String name = new String(buffer);
entry = createZipEntry(name);
+ entryAtEOF = false;
entry.setMethod(method);
if ((flags & 8) == 0)
{
if (method == ZipOutputStream.DEFLATED)
inf.reset();
entry = null;
+ entryAtEOF = true;
}
public int available() throws IOException
{
- return entry != null ? 1 : 0;
+ return entryAtEOF ? 0 : 1;
}
/**
throw new ZipException("CRC mismatch");
crc.reset();
entry = null;
+ entryAtEOF = true;
}
return len;
}
super.close();
crc = null;
entry = null;
+ entryAtEOF = true;
}
/**