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 2017/05/06 18:30:03 UTC

svn commit: r1794169 - in /httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync: ConnectExec.java ExecRuntimeImpl.java

Author: olegk
Date: Sat May  6 18:30:02 2017
New Revision: 1794169

URL: http://svn.apache.org/viewvc?rev=1794169&view=rev
Log:
Classic exec runtime to establish connection automatically if the connection endpoint is disconnected

Modified:
    httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ConnectExec.java
    httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ExecRuntimeImpl.java

Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ConnectExec.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ConnectExec.java?rev=1794169&r1=1794168&r2=1794169&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ConnectExec.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ConnectExec.java Sat May  6 18:30:02 2017
@@ -202,10 +202,6 @@ public final class ConnectExec implement
         this.proxyHttpProcessor.process(connect, null, context);
 
         while (response == null) {
-            if (!execRuntime.isConnected()) {
-                execRuntime.connect(context);
-            }
-
             connect.removeHeaders(HttpHeaders.PROXY_AUTHORIZATION);
             this.authenticator.addAuthResponse(proxy, ChallengeType.PROXY, connect, proxyAuthExchange, context);
 

Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ExecRuntimeImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ExecRuntimeImpl.java?rev=1794169&r1=1794168&r2=1794169&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ExecRuntimeImpl.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/ExecRuntimeImpl.java Sat May  6 18:30:02 2017
@@ -141,22 +141,26 @@ class ExecRuntimeImpl implements ExecRun
         return endpoint != null && endpoint.isConnected();
     }
 
+    private void connectEndpoint(final ConnectionEndpoint endpoint, final HttpClientContext context) throws IOException {
+        if (cancellableAware != null) {
+            if (cancellableAware.isCancelled()) {
+                throw new RequestFailedException("Request aborted");
+            }
+        }
+        final RequestConfig requestConfig = context.getRequestConfig();
+        final TimeValue connectTimeout = requestConfig.getConnectTimeout();
+        manager.connect(endpoint, connectTimeout, context);
+        final TimeValue socketTimeout = requestConfig.getSocketTimeout();
+        if (socketTimeout.getDuration() >= 0) {
+            endpoint.setSocketTimeout(socketTimeout.toMillisIntBound());
+        }
+    }
+
     @Override
     public void connect(final HttpClientContext context) throws IOException {
         final ConnectionEndpoint endpoint = ensureValid();
         if (!endpoint.isConnected()) {
-            if (cancellableAware != null) {
-                if (cancellableAware.isCancelled()) {
-                    throw new RequestFailedException("Request aborted");
-                }
-            }
-            final RequestConfig requestConfig = context.getRequestConfig();
-            final TimeValue connectTimeout = requestConfig.getConnectTimeout();
-            manager.connect(endpoint, connectTimeout, context);
-            final TimeValue socketTimeout = requestConfig.getSocketTimeout();
-            if (socketTimeout.getDuration() >= 0) {
-                endpoint.setSocketTimeout(socketTimeout.toMillisIntBound());
-            }
+            connectEndpoint(endpoint, context);
         }
     }
 
@@ -178,6 +182,9 @@ class ExecRuntimeImpl implements ExecRun
     @Override
     public ClassicHttpResponse execute(final ClassicHttpRequest request, final HttpClientContext context) throws IOException, HttpException {
         final ConnectionEndpoint endpoint = ensureValid();
+        if (!endpoint.isConnected()) {
+            connectEndpoint(endpoint, context);
+        }
         return endpoint.execute(request, requestExecutor, context);
     }