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;
+ }
}
}
}