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