Index: java/org/apache/commons/httpclient/HttpConnection.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpConnection.java,v retrieving revision 1.67.2.12 diff -u -r1.67.2.12 HttpConnection.java --- java/org/apache/commons/httpclient/HttpConnection.java 19 Jul 2004 20:06:26 -0000 1.67.2.12 +++ java/org/apache/commons/httpclient/HttpConnection.java 1 Sep 2004 20:39:04 -0000 @@ -1,5 +1,5 @@ /* - * $Header: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpConnection.java,v 1.67.2.12 2004/07/19 20:06:26 olegk Exp $ + * $Header: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpConnection.java,v 1.67.2.12 2004/07/19 20:06:26 olegk Exp $ * $Revision: 1.67.2.12 $ * $Date: 2004/07/19 20:06:26 $ * @@ -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;