You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by jo...@apache.org on 2011/06/22 16:09:10 UTC

svn commit: r1138473 - /httpcomponents/httpclient/branches/trunk-adaptive-connpool/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java

Author: jonm
Date: Wed Jun 22 14:09:09 2011
New Revision: 1138473

URL: http://svn.apache.org/viewvc?rev=1138473&view=rev
Log:
HTTPCLIENT-1101: Do not catch Throwables that come out of executing
through a RequestDirector, but rather limit ourselves to catching
Exceptions and RuntimeExceptions when considering backoff strategies.

Modified:
    httpcomponents/httpclient/branches/trunk-adaptive-connpool/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java

Modified: httpcomponents/httpclient/branches/trunk-adaptive-connpool/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/trunk-adaptive-connpool/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java?rev=1138473&r1=1138472&r2=1138473&view=diff
==============================================================================
--- httpcomponents/httpclient/branches/trunk-adaptive-connpool/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java (original)
+++ httpcomponents/httpclient/branches/trunk-adaptive-connpool/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java Wed Jun 22 14:09:09 2011
@@ -860,15 +860,18 @@ public abstract class AbstractHttpClient
             HttpResponse out; 
             try {
                 out = director.execute(target, request, execContext);
-            } catch (Throwable t) {
-                if (getConnectionBackoffStrategy().shouldBackoff(t)) {
+            } catch (RuntimeException re) {
+                if (getConnectionBackoffStrategy().shouldBackoff(re)) {
                     getBackoffManager().backOff(route);
                 }
-                if (t instanceof Error) throw (Error)t;
-                if (t instanceof RuntimeException) throw (RuntimeException)t;
-                if (t instanceof HttpException) throw (HttpException)t;
-                if (t instanceof IOException) throw (IOException)t;
-                throw new RuntimeException("unexpected exception", t);
+                throw re;
+            } catch (Exception e) {
+                if (getConnectionBackoffStrategy().shouldBackoff(e)) {
+                    getBackoffManager().backOff(route);
+                }
+                if (e instanceof HttpException) throw (HttpException)e;
+                if (e instanceof IOException) throw (IOException)e;
+                throw new RuntimeException("unexpected exception", e);
             }
             if (getConnectionBackoffStrategy().shouldBackoff(out)) {
                 getBackoffManager().backOff(route);