Guru Prasad P.S wrote:
HttpClient 4 :

Response of first multipart post request is :

[org.apache.http.impl.conn.DefaultClientConnection] Receiving response: HTTP/1.1 200 [org.apache.http.headers] << HTTP/1.1 200 [org.apache.http.headers] << Date: Tue, 12 Jan 2010 16:01:47 GMT
[org.apache.http.headers] << Content-type: text/html; charset=utf-8
[org.apache.http.headers] << Content-length: 199
[org.apache.http.headers] << Last-modified: Tue, 12 Jan 2010 16:01:47 GMT
[org.apache.http.headers] << Pragma: no-cache
[org.apache.http.headers] << Expires: 0
[org.apache.http.headers] << Cache-Control: no-cache
[org.apache.http.impl.client.DefaultHttpClient] Connection can be kept alive 
indefinitely
[org.apache.http.wire] << "<html><head><script>[\n]"
[org.apache.http.wire] << "function color(s) { if (s) document.bgColor=s }[\n]"
[org.apache.http.wire] << "var errno=27[\n]"
[org.apache.http.wire] << "var errstr='File too large'[\n]"
[org.apache.http.wire] << "var size=1253000[\n]"
[org.apache.http.wire] << "var uid=0[\n]"
[org.apache.http.wire] << "if (parent.attachCB) parent.attachCB()[\n]"
[org.apache.http.wire] << "</script>[\n]"
[org.apache.http.wire] << "</head>[\n]"
[org.apache.http.wire] << "</html>[\n]"

[org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager] Released 
connection is reusable.

Immediate next multipart post request gives following exception: ( for get 
request: org.apache.http.NoHttpResponseException: The target server failed to 
respond  ------> Request is not reaching server)

java.net.SocketException: Software caused connection abort: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at 
org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer(AbstractSessionOutputBuffer.java:106)
        at 
org.apache.http.impl.io.AbstractSessionOutputBuffer.flush(AbstractSessionOutputBuffer.java:113)
        at 
org.apache.http.impl.conn.LoggingSessionOutputBuffer.flush(LoggingSessionOutputBuffer.java:85)
        at 
org.apache.http.impl.AbstractHttpClientConnection.doFlush(AbstractHttpClientConnection.java:260)
        at 
org.apache.http.impl.SocketHttpClientConnection.close(SocketHttpClientConnection.java:248)
        at 
org.apache.http.impl.conn.DefaultClientConnection.close(DefaultClientConnection.java:154)
        at 
org.apache.http.impl.conn.AbstractPooledConnAdapter.close(AbstractPooledConnAdapter.java:148)
        at 
org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:130)
        at 
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:483)
        at 
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
        at 
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:597)

and [org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager] Released connection is not reusable.

This happens only when server gives error message. For small attachment there 
is no issue.
Verified Content-length header value and total bytes in response, both are same.
Is there any use case where connection may be corrupted because of first 
request and use of same connection for next request gives undesired results.

No issues with httpclient 3.x for same requests.

--Prasad



The target server closed the connection, even though it was meant to keep it alive (by responding with a HTTP/1.1 message containing no 'Connection: close' header). This is a server side bug.

Oleg

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to