diff options
Diffstat (limited to 'src/share/classes/sun/net/httpserver/ChunkedOutputStream.java')
-rw-r--r-- | src/share/classes/sun/net/httpserver/ChunkedOutputStream.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/share/classes/sun/net/httpserver/ChunkedOutputStream.java b/src/share/classes/sun/net/httpserver/ChunkedOutputStream.java index f53d40e5e..bbef17c64 100644 --- a/src/share/classes/sun/net/httpserver/ChunkedOutputStream.java +++ b/src/share/classes/sun/net/httpserver/ChunkedOutputStream.java @@ -73,6 +73,7 @@ class ChunkedOutputStream extends FilterOutputStream if (count == CHUNK_SIZE) { writeChunk(); } + assert count < CHUNK_SIZE; } public void write (byte[]b, int off, int len) throws IOException { @@ -86,20 +87,22 @@ class ChunkedOutputStream extends FilterOutputStream writeChunk(); len -= remain; off += remain; - while (len > CHUNK_SIZE) { + while (len >= CHUNK_SIZE) { System.arraycopy (b,off,buf,OFFSET,CHUNK_SIZE); len -= CHUNK_SIZE; off += CHUNK_SIZE; count = CHUNK_SIZE; writeChunk(); } - pos = OFFSET; } if (len > 0) { System.arraycopy (b,off,buf,pos,len); count += len; pos += len; } + if (count == CHUNK_SIZE) { + writeChunk(); + } } /** |