olegk 2004/09/06 10:41:45 Modified: httpclient/src/java/org/apache/commons/httpclient Tag: HTTPCLIENT_2_0_BRANCH HttpConnection.java Log: PR #21329 (Add InputStream buffering) Contributed by Bjarne Rasmussen <brasmussen -at- novell.com> Reviewed bt Oleg Kalnichevski & Michael Becke Revision Changes Path No revision No revision 1.67.2.13 +26 -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.67.2.12 retrieving revision 1.67.2.13 diff -u -r1.67.2.12 -r1.67.2.13 --- HttpConnection.java 19 Jul 2004 20:06:26 -0000 1.67.2.12 +++ HttpConnection.java 6 Sep 2004 17:41:45 -0000 1.67.2.13 @@ -31,12 +31,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; @@ -498,13 +498,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(soTimeout); @@ -686,7 +687,14 @@ 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( new WrappedOutputStream(socket.getOutputStream()), outbuffersize @@ -743,7 +751,14 @@ 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( new WrappedOutputStream(socket.getOutputStream()), outbuffersize @@ -884,9 +899,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 { @@ -1389,7 +1405,7 @@ private Socket socket = null; /** My InputStream. */ - private PushbackInputStream inputStream = null; + private InputStream inputStream = null; /** My OutputStream. */ private OutputStream outputStream = null;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]