You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2014/01/21 13:50:22 UTC

svn commit: r1559999 - in /httpcomponents/httpclient/trunk/httpclient/src/main: java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java java/org/apache/http/impl/execchain/RetryExec.java

Author: olegk
Date: Tue Jan 21 12:50:22 2014
New Revision: 1559999

URL: http://svn.apache.org/r1559999
Log:
HTTPCLIENT-1448: Add context information to NoHttpResponseException

Modified:
    httpcomponents/httpclient/trunk/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/execchain/RetryExec.java

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java?rev=1559999&r1=1559998&r2=1559999&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java Tue Jan 21 12:50:22 2014
@@ -42,6 +42,7 @@ import org.apache.http.HttpException;
 import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
+import org.apache.http.NoHttpResponseException;
 import org.apache.http.ProtocolException;
 import org.apache.http.ProtocolVersion;
 import org.apache.http.annotation.NotThreadSafe;
@@ -621,12 +622,14 @@ public class DefaultRequestDirector impl
                 if (retryHandler.retryRequest(ex, connectCount, context)) {
                     if (this.log.isInfoEnabled()) {
                         this.log.info("I/O exception ("+ ex.getClass().getName() +
-                                ") caught when connecting to the target host: "
+                                ") caught when connecting to "
+                                + route +
+                                ": "
                                 + ex.getMessage());
                         if (this.log.isDebugEnabled()) {
                             this.log.debug(ex.getMessage(), ex);
                         }
-                        this.log.info("Retrying connect");
+                        this.log.info("Retrying connect to " + route);
                     }
                 } else {
                     throw ex;
@@ -691,16 +694,27 @@ public class DefaultRequestDirector impl
                 if (retryHandler.retryRequest(ex, wrapper.getExecCount(), context)) {
                     if (this.log.isInfoEnabled()) {
                         this.log.info("I/O exception ("+ ex.getClass().getName() +
-                                ") caught when processing request: "
+                                ") caught when processing request to "
+                                + route +
+                                ": "
                                 + ex.getMessage());
                     }
                     if (this.log.isDebugEnabled()) {
                         this.log.debug(ex.getMessage(), ex);
                     }
-                    this.log.info("Retrying request");
+                    if (this.log.isInfoEnabled()) {
+                        this.log.info("Retrying request to " + route);
+                    }
                     retryReason = ex;
                 } else {
-                    throw ex;
+                    if (ex instanceof NoHttpResponseException) {
+                        final NoHttpResponseException updatedex = new NoHttpResponseException(
+                                route.getTargetHost().toHostString() + " failed to respond");
+                        updatedex.setStackTrace(ex.getStackTrace());
+                        throw updatedex;
+                    } else {
+                        throw ex;
+                    }
                 }
             }
         }

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/execchain/RetryExec.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/execchain/RetryExec.java?rev=1559999&r1=1559998&r2=1559999&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/execchain/RetryExec.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/execchain/RetryExec.java Tue Jan 21 12:50:22 2014
@@ -33,6 +33,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.http.Header;
 import org.apache.http.HttpException;
+import org.apache.http.NoHttpResponseException;
 import org.apache.http.annotation.Immutable;
 import org.apache.http.client.HttpRequestRetryHandler;
 import org.apache.http.client.NonRepeatableRequestException;
@@ -91,7 +92,9 @@ public class RetryExec implements Client
                 if (retryHandler.retryRequest(ex, execCount, context)) {
                     if (this.log.isInfoEnabled()) {
                         this.log.info("I/O exception ("+ ex.getClass().getName() +
-                                ") caught when processing request: "
+                                ") caught when processing request to "
+                                + route +
+                                ": "
                                 + ex.getMessage());
                     }
                     if (this.log.isDebugEnabled()) {
@@ -103,9 +106,18 @@ public class RetryExec implements Client
                                 "with a non-repeatable request entity", ex);
                     }
                     request.setHeaders(origheaders);
-                    this.log.info("Retrying request");
+                    if (this.log.isInfoEnabled()) {
+                        this.log.info("Retrying request to " + route);
+                    }
                 } else {
-                    throw ex;
+                    if (ex instanceof NoHttpResponseException) {
+                        final NoHttpResponseException updatedex = new NoHttpResponseException(
+                                route.getTargetHost().toHostString() + " failed to respond");
+                        updatedex.setStackTrace(ex.getStackTrace());
+                        throw updatedex;
+                    } else {
+                        throw ex;
+                    }
                 }
             }
         }