public int read(byte[] b, int off, int len) throws IOException {
boolean good = false;
try {
- if (length == 0 && contentLength == -1) readChunk();
+ if (length == 0 && contentLength == -1) {
+ readChunk();
+ if (chunkedDone) return -1;
+ } else {
+ if (length == 0) return -1;
+ }
if (len > length) len = length;
int ret = super.read(b, off, len);
length -= ret;