olegk 2004/09/06 11:01:02 Modified: httpclient/src/java/org/apache/commons/httpclient HttpConnection.java httpclient release_notes.txt Log: PR #21329 (Add InputStream buffering) Contributed by Bjarne Rasmussen <brasmussen -at- novell.com> Reviewed by Oleg Kalnichevski & Michael Becke Revision Changes Path 1.98 +20 -10 jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpConnection.java Index: HttpConnection.java =================================================================== RCS file: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpConnection.java,v retrieving revision 1.97 retrieving revision 1.98 diff -u -r1.97 -r1.98 --- HttpConnection.java 19 Jul 2004 20:08:06 -0000 1.97 +++ HttpConnection.java 6 Sep 2004 18:01:02 -0000 1.98 @@ -29,12 +29,12 @@ package org.apache.commons.httpclient; +import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InterruptedIOException; import java.io.OutputStream; -import java.io.PushbackInputStream; import java.lang.reflect.Method; import java.net.InetAddress; import java.net.Socket; @@ -472,13 +472,14 @@ if (inputStream.available() == 0) { try { socket.setSoTimeout(1); + inputStream.mark(1); int byteRead = inputStream.read(); if (byteRead == -1) { // again - if the socket is reporting all data read, // probably stale isStale = true; } else { - inputStream.unread(byteRead); + inputStream.reset(); } } finally { socket.setSoTimeout(this.params.getSoTimeout()); @@ -690,7 +691,11 @@ if (outbuffersize > 2048) { outbuffersize = 2048; } - inputStream = new PushbackInputStream(socket.getInputStream()); + int inbuffersize = socket.getReceiveBufferSize(); + if (inbuffersize > 2048) { + inbuffersize = 2048; + } + inputStream = new BufferedInputStream(socket.getInputStream(), inbuffersize); outputStream = new BufferedOutputStream(socket.getOutputStream(), outbuffersize); isOpen = true; used = false; @@ -741,7 +746,11 @@ if (outbuffersize > 2048) { outbuffersize = 2048; } - inputStream = new PushbackInputStream(socket.getInputStream()); + int inbuffersize = socket.getReceiveBufferSize(); + if (inbuffersize > 2048) { + inbuffersize = 2048; + } + inputStream = new BufferedInputStream(socket.getInputStream(), inbuffersize); outputStream = new BufferedOutputStream(socket.getOutputStream(), outbuffersize); usingSecureSocket = true; tunnelEstablished = true; @@ -838,9 +847,10 @@ } else { try { this.socket.setSoTimeout(timeout); + inputStream.mark(1); int byteRead = inputStream.read(); if (byteRead != -1) { - inputStream.unread(byteRead); + inputStream.reset(); LOG.debug("Input data available"); result = true; } else { @@ -1269,7 +1279,7 @@ private Socket socket = null; /** My InputStream. */ - private PushbackInputStream inputStream = null; + private InputStream inputStream = null; /** My OutputStream. */ private OutputStream outputStream = null; 1.32 +4 -0 jakarta-commons/httpclient/release_notes.txt Index: release_notes.txt =================================================================== RCS file: /home/cvs/jakarta-commons/httpclient/release_notes.txt,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- release_notes.txt 19 Jul 2004 22:02:35 -0000 1.31 +++ release_notes.txt 6 Sep 2004 18:01:02 -0000 1.32 @@ -2,7 +2,11 @@ ------------------- Changes since Alpha 1: + * 21329 - Added input buffering to improve performance + Contributed by Bjarne Rasmussen <brasmussen at novell.com> + * 29897 - Connection output buffer is set to a value not greater than 2k + Contributed by Oleg Kalnichevski <olegk at apache.org> * 29636 - MultiThreadedHttpConnectionManager now support configuring the maximum number of connections on a per host basis.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]