Index: src/org/adblockplus/ChunkedOutputStream.java |
diff --git a/src/org/adblockplus/ChunkedOutputStream.java b/src/org/adblockplus/ChunkedOutputStream.java |
index f4f26d120ef5c1ca6ba9230fb3f63e868358daf6..92f93ec9e838311507447dcd3234b067a4d86b34 100644 |
--- a/src/org/adblockplus/ChunkedOutputStream.java |
+++ b/src/org/adblockplus/ChunkedOutputStream.java |
@@ -22,18 +22,17 @@ import java.io.IOException; |
import java.io.OutputStream; |
/** |
- * ChunkedOutputStream implements chunked HTTP transfer encoding wrapper for |
- * OutputStream. |
+ * ChunkedOutputStream implements chunked HTTP transfer encoding wrapper for OutputStream. |
*/ |
public class ChunkedOutputStream extends FilterOutputStream |
{ |
- private static final int MAX_CHUNK_SIZE = 2048; |
+ private final static int MAX_CHUNK_SIZE = 2048; |
+ private final static byte[] CRLF = { '\r', '\n' }; |
+ private final static byte[] FINAL_CHUNK = new byte[] { '0', '\r', '\n', '\r', '\n' }; |
- private static final byte[] CRLF = {'\r', '\n'}; |
- private static final byte[] FINAL_CHUNK = new byte[] {'0', '\r', '\n', '\r', '\n'}; |
private boolean wroteFinalChunk = false; |
- public ChunkedOutputStream(OutputStream out) |
+ public ChunkedOutputStream(final OutputStream out) |
{ |
super(out); |
} |
@@ -41,66 +40,66 @@ public class ChunkedOutputStream extends FilterOutputStream |
@Override |
public void close() throws IOException |
{ |
- if (!wroteFinalChunk) |
- writeFinalChunk(); |
+ // TODO: Huh? No sync, no 'this.wroteFinalChunk = false'? |
Felix Dahlke
2014/04/16 15:24:25
Can you make this TODO more clear? If you think th
René Jeschke
2014/04/16 17:51:47
Removed. It will throw an exception anyway if it i
|
+ if (!this.wroteFinalChunk) |
Felix Dahlke
2014/04/16 15:24:25
I agree to adding final's everywhere, but let's pl
René Jeschke
2014/04/16 17:51:47
Done.
|
+ { |
Felix Dahlke
2014/04/16 15:24:25
This is also an unrelated change.
René Jeschke
2014/04/16 17:51:47
Done.
|
+ this.writeFinalChunk(); |
+ } |
super.close(); |
} |
@Override |
- public void write(byte[] buffer, int offset, int length) throws IOException |
+ public void write(final byte[] buffer, final int offset, final int length) throws IOException |
{ |
- writeChunk(buffer, offset, length); |
+ this.writeChunk(buffer, offset, length); |
} |
@Override |
- public void write(byte[] buffer) throws IOException |
+ public void write(final byte[] buffer) throws IOException |
{ |
int offset = 0; |
int remain = buffer.length; |
while (remain > 0) |
{ |
- int size = MAX_CHUNK_SIZE; |
- if (size > remain) |
- size = remain; |
- writeChunk(buffer, offset, size); |
+ final int size = Math.min(remain, MAX_CHUNK_SIZE); |
+ this.writeChunk(buffer, offset, size); |
offset += size; |
remain -= size; |
} |
} |
@Override |
- public void write(int oneByte) throws IOException |
+ public void write(final int oneByte) throws IOException |
{ |
throw new UnsupportedOperationException("Not implemented"); |
} |
public void writeFinalChunk() throws IOException |
{ |
- out.write(FINAL_CHUNK); |
- out.flush(); |
- wroteFinalChunk = true; |
+ this.out.write(FINAL_CHUNK); |
+ this.out.flush(); |
+ this.wroteFinalChunk = true; |
} |
- private void writeChunk(byte buffer[], int offset, int length) throws IOException |
+ private void writeChunk(final byte buffer[], final int offset, final int length) throws IOException |
{ |
- // Zero sized buffers are ok on slow connections but not in our case - zero |
- // chunk is used to indicate the end of transfer. |
+ // Zero sized buffers are ok on slow connections but not in our case - zero chunk is used to indicate the end of transfer. |
Felix Dahlke
2014/04/16 15:24:25
Our rule is to wrap at 100 columns, which is what
René Jeschke
2014/04/16 17:51:47
Done.
|
if (length > 0) |
{ |
// Write the chunk length as a hex number |
- writeHex(length); |
+ this.writeHex(length); |
// Write the data |
- out.write(buffer, offset, length); |
+ this.out.write(buffer, offset, length); |
// Write a CRLF |
- out.write(CRLF); |
+ this.out.write(CRLF); |
// Flush the underlying stream |
- out.flush(); |
+ this.out.flush(); |
} |
} |
- private void writeHex(int i) throws IOException |
+ private void writeHex(final int i) throws IOException |
{ |
- out.write(Integer.toHexString(i).getBytes()); |
- out.write(CRLF); |
+ this.out.write(Integer.toHexString(i).getBytes()); |
+ this.out.write(CRLF); |
} |
} |