Index: gnu/java/net/protocol/http/Connection.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/net/protocol/http/Connection.java,v retrieving revision 1.12 diff -u -b -B -r1.12 Connection.java --- gnu/java/net/protocol/http/Connection.java 30 Dec 2003 14:09:07 -0000 1.12 +++ gnu/java/net/protocol/http/Connection.java 12 Jan 2004 11:51:46 -0000 @@ -168,7 +168,6 @@ inputStream = new DataInputStream(new BufferedInputStream(socket.getInputStream())); outputStream = new BufferedOutputStream (socket.getOutputStream()); - bufferedOutputStream = new ByteArrayOutputStream (256); //default is too small sendRequest(); receiveReply(); @@ -226,6 +225,7 @@ setRequestProperty ("Content-type", "application/x-www-form-urlencoded"); // Set correct content length. + if (bufferedOutoutStream != null) setRequestProperty ("Content-length", String.valueOf (bufferedOutputStream.size())); // Write all req_props name-value pairs to the output writer. @@ -242,9 +242,12 @@ outputWriter.flush(); // Write content + if (bufferedOutputStream != null) + { bufferedOutputStream.writeTo (outputStream); outputStream.flush(); } + } /** * Read HTTP reply from inputStream. @@ -382,6 +385,10 @@ */ public OutputStream getOutputStream() throws IOException { + if (connected) + throw new ProtocolException + ("You cannot get an outputstream for an existing http connection"); + if (!doOutput) throw new ProtocolException ("Want output stream while haven't setDoOutput(true)"); @@ -389,8 +396,8 @@ if (!method.equals ("POST")) //But we might support "PUT" in future setRequestMethod ("POST"); - if (!connected) - connect(); + if (bufferedOutputStream == null) + bufferedOutputStream = new ByteArrayOutputStream (256); //default is too small return bufferedOutputStream; }