Ortwin Glück wrote:
Oops that was the wrong patch.txt file.Not sure what you are trying to fix here. This patch does *nothing*.I guess you should rather close your input stream.
I am trying to fix the missing last-chunk (The "outstream.write(tmp, 0, 0);" does it).
Find enclosed the right patch.
Odi jean-frederic clere wrote:Index: src/java/org/apache/commons/httpclient/methods/PostMethod.java
===================================================================
RCS file: /home/cvs/mirror/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/PostMethod.java,v
retrieving revision 1.27
diff -u -r1.27 PostMethod.java
--- src/java/org/apache/commons/httpclient/methods/PostMethod.java 12 Nov 2002 09:58:23 -0000 1.27
+++ src/java/org/apache/commons/httpclient/methods/PostMethod.java 21 Nov 2002 13:26:46 -0000
@@ -746,6 +746,7 @@
outstream.write(tmp, 0, i);
total += i;
}
+ outstream.write(tmp, 0, 0);
if ((this.requestContentLength > 0) && (total < this.requestContentLength)) {
throw new IOException("Unexpected end of input stream after "
+total +" bytes (expected "+ this.requestContentLength +" bytes)");
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
Index: src/java/org/apache/commons/httpclient/ChunkedOutputStream.java =================================================================== RCS file: /home/cvs/mirror/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/ChunkedOutputStream.java,v retrieving revision 1.1 diff -u -r1.1 ChunkedOutputStream.java --- src/java/org/apache/commons/httpclient/ChunkedOutputStream.java 25 Oct 2002 10:15:51 -0000 1.1 +++ src/java/org/apache/commons/httpclient/ChunkedOutputStream.java 21 Nov 2002 +15:40:43 -0000 @@ -108,7 +108,7 @@ // ----------------------------------------------------- Instance Variables /** Has this stream been closed? */ - private boolean closed = false; + private boolean end = false; /** The underlying output stream to which we will write data */ private OutputStream stream = null; @@ -204,7 +204,12 @@ byte chunkHeader[] = (Integer.toHexString(len) + "\r\n").getBytes(); stream.write(chunkHeader, 0, chunkHeader.length); - stream.write(b, off, len); + + if (len!=0) + stream.write(b, off, len); + else + end = true; + stream.write(ENDCHUNK, 0, ENDCHUNK.length); if (wireLog.isDebugEnabled()) { wireLog.debug(">> byte(s)" + len + " \\r\\n (chunk length " @@ -224,7 +229,7 @@ public void close() throws IOException { log.trace("enter ChunkedOutputStream.close()"); - if (!closed) { + if (!end) { try { // Write the final chunk. stream.write(ZERO, 0, ZERO.length); @@ -239,10 +244,10 @@ // regardless of what happens, mark the stream as closed. // if there are errors closing it, there's not much we can do // about it - closed = true; - super.close(); + end = true; } } + super.close(); } @@ -253,4 +258,4 @@ stream.flush(); } -} \ No newline at end of file +} Index: src/java/org/apache/commons/httpclient/methods/PostMethod.java =================================================================== RCS file: /home/cvs/mirror/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/PostMethod.java,v retrieving revision 1.27 diff -u -r1.27 PostMethod.java --- src/java/org/apache/commons/httpclient/methods/PostMethod.java 12 Nov 2002 09:58:23 -0000 1.27 +++ src/java/org/apache/commons/httpclient/methods/PostMethod.java 21 Nov 2002 +15:40:45 -0000 @@ -746,6 +746,7 @@ outstream.write(tmp, 0, i); total += i; } + outstream.write(tmp, 0, 0); if ((this.requestContentLength > 0) && (total < this.requestContentLength)) { throw new IOException("Unexpected end of input stream after " +total +" bytes (expected "+ this.requestContentLength +" bytes)");
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>