Return-Path: Mailing-List: contact commons-httpclient-dev-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list commons-httpclient-dev@jakarta.apache.org Received: (qmail 9326 invoked from network); 22 Apr 2003 19:59:41 -0000 Received: from exchange.sun.com (192.18.33.10) by daedalus.apache.org with SMTP; 22 Apr 2003 19:59:41 -0000 Received: (qmail 28490 invoked by uid 50); 22 Apr 2003 20:01:42 -0000 Date: 22 Apr 2003 20:01:42 -0000 Message-ID: <20030422200142.28489.qmail@nagoya.betaversion.org> From: bugzilla@apache.org To: commons-httpclient-dev@jakarta.apache.org Cc: Subject: DO NOT REPLY [Bug 19230] New: - httpClient failed to reconnect after keep-alive connection timed out X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT . ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19230 httpClient failed to reconnect after keep-alive connection timed out Summary: httpClient failed to reconnect after keep-alive connection timed out Product: Commons Version: 2.0 Beta 2 Platform: PC OS/Version: Other Status: NEW Severity: Critical Priority: Other Component: HttpClient AssignedTo: commons-httpclient-dev@jakarta.apache.org ReportedBy: bin.chen@sabre-holdings.com Description: When using httpClient with https tunnelling througha proxy server, after keep- alive connection timed out on server side. The httpClient code was unable to establish the connection again. Cause: The HttpMethodBase.processRequest's retry loop retries the connection without going through the "CONNECT" request to the proxy server. Our proxy server returns 407 error code. In case of tunnelling connection, proper reconnect should be done by first doing the "CONNECT" sequence to get authenticated throught the proxy. Temp fix and Work around: We implemented some work around to do the retry from the application layer. In order to detect the situation, we have to rely on the error message contained in the HttpRecoverableException. We are checking the text "Connection aborted by peer: socket write error". We also have to modify the HttpMethodBase code to throw the HttpRecoverableException out to the application.