Merge branch '1.5.x' into 2.0.x

This commit is contained in:
Andy Wilkinson
2018-06-19 20:06:44 +01:00
2 changed files with 47 additions and 7 deletions

View File

@@ -381,15 +381,15 @@ public class JarWriter implements LoaderClassesWriter, AutoCloseable {
public int read(byte[] b, int off, int len) throws IOException {
int read = (this.headerStream != null ? this.headerStream.read(b, off, len)
: -1);
if (read > 0) {
this.position += read;
}
else {
read = 0;
if (read <= 0) {
return readRemainder(b, off, len);
}
this.position += read;
if (read < len) {
read += super.read(b, off + read, len - read);
this.position += read;
int remainderRead = readRemainder(b, off + read, len - read);
if (remainderRead > 0) {
read += remainderRead;
}
}
if (this.position >= this.headerLength) {
this.headerStream = null;
@@ -401,6 +401,14 @@ public class JarWriter implements LoaderClassesWriter, AutoCloseable {
return Arrays.equals(this.header, ZIP_HEADER);
}
private int readRemainder(byte[] b, int off, int len) throws IOException {
int read = super.read(b, off, len);
if (read > 0) {
this.position += read;
}
return read;
}
}
/**