diff --git a/httpclient5-fluent/src/examples/org/apache/hc/client5/http/examples/fluent/FluentExecutor.java b/httpclient5-fluent/src/examples/org/apache/hc/client5/http/examples/fluent/FluentExecutor.java index c6ccccf409..56e3fc9922 100644 --- a/httpclient5-fluent/src/examples/org/apache/hc/client5/http/examples/fluent/FluentExecutor.java +++ b/httpclient5-fluent/src/examples/org/apache/hc/client5/http/examples/fluent/FluentExecutor.java @@ -52,9 +52,7 @@ public static void main(String[] args)throws Exception { // Execute a GET with timeout settings and return response content as String. executor.execute(Request.Get("http://somehost/") - .connectTimeout(Timeout.ofSeconds(1)) - .socketTimeout(Timeout.ofSeconds(1)) - ).returnContent().asString(); + .connectionTimeout(Timeout.ofSeconds(1))).returnContent().asString(); // Execute a POST with the 'expect-continue' handshake, using HTTP/1.1, // containing a request body as String and return response content as byte array. diff --git a/httpclient5-fluent/src/examples/org/apache/hc/client5/http/examples/fluent/FluentRequests.java b/httpclient5-fluent/src/examples/org/apache/hc/client5/http/examples/fluent/FluentRequests.java index 520dd620b8..4e656792a6 100644 --- a/httpclient5-fluent/src/examples/org/apache/hc/client5/http/examples/fluent/FluentRequests.java +++ b/httpclient5-fluent/src/examples/org/apache/hc/client5/http/examples/fluent/FluentRequests.java @@ -43,8 +43,7 @@ public class FluentRequests { public static void main(String[] args)throws Exception { // Execute a GET with timeout settings and return response content as String. Request.Get("http://somehost/") - .connectTimeout(Timeout.ofSeconds(1)) - .socketTimeout(Timeout.ofSeconds(1)) + .connectionTimeout(Timeout.ofSeconds(1)) .execute().returnContent().asString(); // Execute a POST with the 'expect-continue' handshake, using HTTP/1.1, diff --git a/httpclient5-fluent/src/main/java/org/apache/hc/client5/http/fluent/Request.java b/httpclient5-fluent/src/main/java/org/apache/hc/client5/http/fluent/Request.java index 938b4f13ab..1c0076c052 100644 --- a/httpclient5-fluent/src/main/java/org/apache/hc/client5/http/fluent/Request.java +++ b/httpclient5-fluent/src/main/java/org/apache/hc/client5/http/fluent/Request.java @@ -76,8 +76,7 @@ public class Request { private final HttpUriRequestBase request; private Boolean useExpectContinue; - private Timeout socketTmeout; - private Timeout connectTimeout; + private Timeout connectionTimeout; private HttpHost proxy; private SimpleDateFormat dateFormatter; @@ -171,11 +170,8 @@ ClassicHttpResponse internalExecute( if (this.useExpectContinue != null) { builder.setExpectContinueEnabled(this.useExpectContinue); } - if (this.socketTmeout != null) { - builder.setSocketTimeout(this.socketTmeout); - } - if (this.connectTimeout != null) { - builder.setConnectTimeout(this.connectTimeout); + if (this.connectionTimeout != null) { + builder.setConnectionTimeout(this.connectionTimeout); } if (this.proxy != null) { builder.setProxy(this.proxy); @@ -283,13 +279,8 @@ public Request userAgent(final String agent) { //// HTTP connection parameter operations - public Request socketTimeout(final Timeout timeout) { - this.socketTmeout = timeout; - return this; - } - - public Request connectTimeout(final Timeout timeout) { - this.connectTimeout = timeout; + public Request connectionTimeout(final Timeout timeout) { + this.connectionTimeout = timeout; return this; } diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/AbstractHttp1IntegrationTestBase.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/AbstractHttp1IntegrationTestBase.java index 18dd89e09e..fc3252bf46 100644 --- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/AbstractHttp1IntegrationTestBase.java +++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/AbstractHttp1IntegrationTestBase.java @@ -90,8 +90,7 @@ protected void after() { protected void before() throws Throwable { clientBuilder = HttpAsyncClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom() - .setSocketTimeout(TIMEOUT) - .setConnectTimeout(TIMEOUT) + .setConnectionTimeout(TIMEOUT) .setConnectionRequestTimeout(TIMEOUT) .build()) .setConnectionManager(connManager); diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1Async.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1Async.java index 506001fb4e..54172927b1 100644 --- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1Async.java +++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1Async.java @@ -94,8 +94,7 @@ protected void after() { protected void before() throws Throwable { clientBuilder = HttpAsyncClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom() - .setSocketTimeout(TIMEOUT) - .setConnectTimeout(TIMEOUT) + .setConnectionTimeout(TIMEOUT) .setConnectionRequestTimeout(TIMEOUT) .build()) .setConnectionManager(connManager); diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1AsyncRedirects.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1AsyncRedirects.java index 48caa356dc..10444f2012 100644 --- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1AsyncRedirects.java +++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1AsyncRedirects.java @@ -111,8 +111,7 @@ protected void after() { protected void before() throws Throwable { clientBuilder = HttpAsyncClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom() - .setSocketTimeout(TIMEOUT) - .setConnectTimeout(TIMEOUT) + .setConnectionTimeout(TIMEOUT) .setConnectionRequestTimeout(TIMEOUT) .build()) .setConnectionManager(connManager); diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1AsyncStatefulConnManagement.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1AsyncStatefulConnManagement.java index 7880f6c1bf..1070961b64 100644 --- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1AsyncStatefulConnManagement.java +++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1AsyncStatefulConnManagement.java @@ -89,8 +89,7 @@ protected void after() { protected void before() throws Throwable { clientBuilder = HttpAsyncClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom() - .setSocketTimeout(TIMEOUT) - .setConnectTimeout(TIMEOUT) + .setConnectionTimeout(TIMEOUT) .setConnectionRequestTimeout(TIMEOUT) .build()) .setConnectionManager(connManager); diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1ClientAuthentication.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1ClientAuthentication.java index e998c43268..e9d5fb7c4a 100644 --- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1ClientAuthentication.java +++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp1ClientAuthentication.java @@ -106,8 +106,7 @@ protected void after() { protected void before() throws Throwable { clientBuilder = HttpAsyncClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom() - .setSocketTimeout(TIMEOUT) - .setConnectTimeout(TIMEOUT) + .setConnectionTimeout(TIMEOUT) .setConnectionRequestTimeout(TIMEOUT) .build()) .setConnectionManager(connManager); diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2Async.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2Async.java index e64cbdd3e9..ac0ea0baed 100644 --- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2Async.java +++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2Async.java @@ -62,8 +62,7 @@ public static Collection protocols() { protected void before() throws Throwable { clientBuilder = Http2AsyncClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom() - .setSocketTimeout(TIMEOUT) - .setConnectTimeout(TIMEOUT) + .setConnectionTimeout(TIMEOUT) .setConnectionRequestTimeout(TIMEOUT) .build()) .setTlsStrategy(new BasicClientTlsStrategy(SSLTestContexts.createClientSSLContext())); diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2AsyncRedirect.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2AsyncRedirect.java index 63011afe44..417c3da8ff 100644 --- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2AsyncRedirect.java +++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2AsyncRedirect.java @@ -62,8 +62,7 @@ public static Collection protocols() { protected void before() throws Throwable { clientBuilder = Http2AsyncClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom() - .setSocketTimeout(TIMEOUT) - .setConnectTimeout(TIMEOUT) + .setConnectionTimeout(TIMEOUT) .setConnectionRequestTimeout(TIMEOUT) .build()) .setTlsStrategy(new H2TlsStrategy(SSLTestContexts.createClientSSLContext())); diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2ClientAuthentication.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2ClientAuthentication.java index 5cb1d80743..91bdb5ec2c 100644 --- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2ClientAuthentication.java +++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/async/TestHttp2ClientAuthentication.java @@ -66,8 +66,7 @@ public static Collection protocols() { protected void before() throws Throwable { clientBuilder = Http2AsyncClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom() - .setSocketTimeout(TIMEOUT) - .setConnectTimeout(TIMEOUT) + .setConnectionTimeout(TIMEOUT) .setConnectionRequestTimeout(TIMEOUT) .build()) .setTlsStrategy(new H2TlsStrategy(SSLTestContexts.createClientSSLContext())); diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/LocalServerTestBase.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/LocalServerTestBase.java index 38761fe24d..5e9da8ad2c 100644 --- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/LocalServerTestBase.java +++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/LocalServerTestBase.java @@ -110,8 +110,7 @@ protected void before() throws Throwable { .build()); clientBuilder = HttpClientBuilder.create() .setDefaultRequestConfig(RequestConfig.custom() - .setSocketTimeout(TIMEOUT) - .setConnectTimeout(TIMEOUT) + .setConnectionTimeout(TIMEOUT) .setConnectionRequestTimeout(TIMEOUT) .build()) .setConnectionManager(connManager); diff --git a/httpclient5/src/examples/org/apache/hc/client5/http/examples/ClientConfiguration.java b/httpclient5/src/examples/org/apache/hc/client5/http/examples/ClientConfiguration.java index 1868ac4294..f9dfc9c3eb 100644 --- a/httpclient5/src/examples/org/apache/hc/client5/http/examples/ClientConfiguration.java +++ b/httpclient5/src/examples/org/apache/hc/client5/http/examples/ClientConfiguration.java @@ -212,8 +212,7 @@ public InetAddress[] resolve(final String host) throws UnknownHostException { // Request configuration can be overridden at the request level. // They will take precedence over the one set at the client level. final RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig) - .setSocketTimeout(Timeout.ofSeconds(5)) - .setConnectTimeout(Timeout.ofSeconds(5)) + .setConnectionTimeout(Timeout.ofSeconds(5)) .setConnectionRequestTimeout(Timeout.ofSeconds(5)) .setProxy(new HttpHost("myotherproxy", 8080)) .build(); diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/config/RequestConfig.java b/httpclient5/src/main/java/org/apache/hc/client5/http/config/RequestConfig.java index 7b9e8b93f8..2af05344d7 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/config/RequestConfig.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/config/RequestConfig.java @@ -42,8 +42,7 @@ public class RequestConfig implements Cloneable { private static final Timeout DEFAULT_CONNECTION_REQUEST_TIMEOUT = Timeout.ofMinutes(3); - private static final Timeout DEFAULT_CONNECT_TIMEOUT = Timeout.ofMinutes(3); - private static final Timeout DEFAULT_SOCKET_TIMEOUT = Timeout.ZERO_MILLISECONDS; + private static final Timeout DEFAULT_CONNECTION_TIMEOUT = Timeout.ofMinutes(3); public static final RequestConfig DEFAULT = new Builder().build(); @@ -57,16 +56,14 @@ public class RequestConfig implements Cloneable { private final Collection targetPreferredAuthSchemes; private final Collection proxyPreferredAuthSchemes; private final Timeout connectionRequestTimeout; - private final Timeout connectTimeout; - private final Timeout socketTimeout; + private final Timeout connectionTimeout; private final boolean contentCompressionEnabled; /** * Intended for CDI compatibility */ protected RequestConfig() { - this(false, null, null, false, false, 0, false, null, null, - DEFAULT_CONNECTION_REQUEST_TIMEOUT, DEFAULT_CONNECT_TIMEOUT, DEFAULT_SOCKET_TIMEOUT, false); + this(false, null, null, false, false, 0, false, null, null, DEFAULT_CONNECTION_REQUEST_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT, false); } RequestConfig( @@ -80,8 +77,7 @@ protected RequestConfig() { final Collection targetPreferredAuthSchemes, final Collection proxyPreferredAuthSchemes, final Timeout connectionRequestTimeout, - final Timeout connectTimeout, - final Timeout socketTimeout, + final Timeout connectionTimeout, final boolean contentCompressionEnabled) { super(); this.expectContinueEnabled = expectContinueEnabled; @@ -94,8 +90,7 @@ protected RequestConfig() { this.targetPreferredAuthSchemes = targetPreferredAuthSchemes; this.proxyPreferredAuthSchemes = proxyPreferredAuthSchemes; this.connectionRequestTimeout = connectionRequestTimeout; - this.connectTimeout = connectTimeout; - this.socketTimeout = socketTimeout; + this.connectionTimeout = connectionTimeout; this.contentCompressionEnabled = contentCompressionEnabled; } @@ -228,7 +223,8 @@ public Timeout getConnectionRequestTimeout() { } /** - * Determines the timeout in milliseconds until a connection is established. + * Determines the timeout in milliseconds until a new connection is + * fully established or established connection transmits a data packet. * A timeout value of zero is interpreted as an infinite timeout. *

* A timeout value of zero is interpreted as an infinite timeout. @@ -237,25 +233,11 @@ public Timeout getConnectionRequestTimeout() { *

* Default: 3 minutes *

+ * + * @since 5.0 */ - public Timeout getConnectTimeout() { - return connectTimeout; - } - - /** - * Defines the socket timeout ({@code SO_TIMEOUT}) in milliseconds, - * which is the timeout for waiting for data or, put differently, - * a maximum period inactivity between two consecutive data packets). - *

- * A timeout value of zero is interpreted as an infinite timeout. - * A negative value is interpreted as undefined (system default). - *

- *

- * Default: no timeout. - *

- */ - public Timeout getSocketTimeout() { - return socketTimeout; + public Timeout getConnectionTimeout() { + return connectionTimeout; } /** @@ -289,8 +271,7 @@ public String toString() { builder.append(", targetPreferredAuthSchemes=").append(targetPreferredAuthSchemes); builder.append(", proxyPreferredAuthSchemes=").append(proxyPreferredAuthSchemes); builder.append(", connectionRequestTimeout=").append(connectionRequestTimeout); - builder.append(", connectTimeout=").append(connectTimeout); - builder.append(", socketTimeout=").append(socketTimeout); + builder.append(", connectionTimeout=").append(connectionTimeout); builder.append(", contentCompressionEnabled=").append(contentCompressionEnabled); builder.append("]"); return builder.toString(); @@ -312,8 +293,7 @@ public static RequestConfig.Builder copy(final RequestConfig config) { .setTargetPreferredAuthSchemes(config.getTargetPreferredAuthSchemes()) .setProxyPreferredAuthSchemes(config.getProxyPreferredAuthSchemes()) .setConnectionRequestTimeout(config.getConnectionRequestTimeout()) - .setConnectTimeout(config.getConnectTimeout()) - .setSocketTimeout(config.getSocketTimeout()) + .setConnectionTimeout(config.getConnectionTimeout()) .setContentCompressionEnabled(config.isContentCompressionEnabled()); } @@ -329,8 +309,7 @@ public static class Builder { private Collection targetPreferredAuthSchemes; private Collection proxyPreferredAuthSchemes; private Timeout connectionRequestTimeout; - private Timeout connectTimeout; - private Timeout socketTimeout; + private Timeout connectionTimeout; private boolean contentCompressionEnabled; Builder() { @@ -339,8 +318,7 @@ public static class Builder { this.maxRedirects = 50; this.authenticationEnabled = true; this.connectionRequestTimeout = DEFAULT_CONNECTION_REQUEST_TIMEOUT; - this.connectTimeout = DEFAULT_CONNECT_TIMEOUT; - this.socketTimeout = DEFAULT_SOCKET_TIMEOUT; + this.connectionTimeout = DEFAULT_CONNECTION_TIMEOUT; this.contentCompressionEnabled = true; } @@ -399,23 +377,13 @@ public Builder setConnectionRequestTimeout(final long connectionRequestTimeout, return this; } - public Builder setConnectTimeout(final Timeout connectTimeout) { - this.connectTimeout = connectTimeout; + public Builder setConnectionTimeout(final Timeout connectionTimeout) { + this.connectionTimeout = connectionTimeout; return this; } public Builder setConnectTimeout(final long connectTimeout, final TimeUnit timeUnit) { - this.connectTimeout = Timeout.of(connectTimeout, timeUnit); - return this; - } - - public Builder setSocketTimeout(final Timeout socketTimeout) { - this.socketTimeout = socketTimeout; - return this; - } - - public Builder setSocketTimeout(final long socketTimeout, final TimeUnit timeUnit) { - this.socketTimeout = Timeout.of(socketTimeout, timeUnit); + this.connectionTimeout = Timeout.of(connectTimeout, timeUnit); return this; } @@ -436,8 +404,7 @@ public RequestConfig build() { targetPreferredAuthSchemes, proxyPreferredAuthSchemes, connectionRequestTimeout != null ? connectionRequestTimeout : DEFAULT_CONNECTION_REQUEST_TIMEOUT, - connectTimeout != null ? connectTimeout : DEFAULT_CONNECT_TIMEOUT, - socketTimeout != null ? socketTimeout : DEFAULT_SOCKET_TIMEOUT, + connectionTimeout != null ? connectionTimeout : DEFAULT_CONNECTION_TIMEOUT, contentCompressionEnabled); } diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttp2AsyncExecRuntime.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttp2AsyncExecRuntime.java index 624dafe803..0c4176cc3d 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttp2AsyncExecRuntime.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttp2AsyncExecRuntime.java @@ -73,7 +73,7 @@ public void acquireConnection( if (sessionRef.get() == null) { final HttpHost target = route.getTargetHost(); final RequestConfig requestConfig = context.getRequestConfig(); - connPool.getSession(target, requestConfig.getConnectTimeout(), new FutureCallback() { + connPool.getSession(target, requestConfig.getConnectionTimeout(), new FutureCallback() { @Override public void completed(final IOSession ioSession) { @@ -153,7 +153,7 @@ public void connect( } else { final HttpHost target = endpoint.target; final RequestConfig requestConfig = context.getRequestConfig(); - connPool.getSession(target, requestConfig.getConnectTimeout(), new FutureCallback() { + connPool.getSession(target, requestConfig.getConnectionTimeout(), new FutureCallback() { @Override public void completed(final IOSession ioSession) { @@ -194,7 +194,7 @@ public void execute(final AsyncClientExchangeHandler exchangeHandler, final Http } else { final HttpHost target = endpoint.target; final RequestConfig requestConfig = context.getRequestConfig(); - connPool.getSession(target, requestConfig.getConnectTimeout(), new FutureCallback() { + connPool.getSession(target, requestConfig.getConnectionTimeout(), new FutureCallback() { @Override public void completed(final IOSession ioSession) { diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttpAsyncExecRuntime.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttpAsyncExecRuntime.java index 23ed986de2..e7566c45f2 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttpAsyncExecRuntime.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttpAsyncExecRuntime.java @@ -183,19 +183,19 @@ public void connect( callback.completed(this); } else { final RequestConfig requestConfig = context.getRequestConfig(); + final TimeValue timeout = requestConfig.getConnectionTimeout(); manager.connect( endpoint, connectionInitiator, - requestConfig.getConnectTimeout(), + timeout, versionPolicy, context, new FutureCallback() { @Override public void completed(final AsyncConnectionEndpoint endpoint) { - final TimeValue socketTimeout = requestConfig.getSocketTimeout(); - if (TimeValue.isPositive(socketTimeout)) { - endpoint.setSocketTimeout(socketTimeout.toMillisIntBound()); + if (TimeValue.isPositive(timeout)) { + endpoint.setSocketTimeout(timeout.toMillisIntBound()); } callback.completed(InternalHttpAsyncExecRuntime.this); } diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/MinimalHttp2AsyncClient.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/MinimalHttp2AsyncClient.java index 3871e880c8..4347e3f452 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/MinimalHttp2AsyncClient.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/MinimalHttp2AsyncClient.java @@ -133,7 +133,7 @@ public void sendRequest( } else { requestConfig = clientContext.getRequestConfig(); } - final Timeout connectTimeout = requestConfig.getConnectTimeout(); + final Timeout connectTimeout = requestConfig.getConnectionTimeout(); final HttpHost target = new HttpHost(request.getAuthority(), request.getScheme()); final Future sessionFuture = connPool.getSession(target, connectTimeout, new FutureCallback() { diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/MinimalHttpAsyncClient.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/MinimalHttpAsyncClient.java index 54a3e66c3d..35b1fce5c8 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/MinimalHttpAsyncClient.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/MinimalHttpAsyncClient.java @@ -180,7 +180,7 @@ public Future lease( final HttpClientContext clientContext = HttpClientContext.adapt(context); final RequestConfig requestConfig = clientContext.getRequestConfig(); final BasicFuture future = new BasicFuture<>(callback); - leaseEndpoint(host, requestConfig.getConnectTimeout(), clientContext, new FutureCallback() { + leaseEndpoint(host, requestConfig.getConnectionTimeout(), clientContext, new FutureCallback() { @Override public void completed(final AsyncConnectionEndpoint result) { @@ -225,7 +225,7 @@ public void sendRequest( } else { requestConfig = clientContext.getRequestConfig(); } - final Timeout connectTimeout = requestConfig.getConnectTimeout(); + final Timeout connectTimeout = requestConfig.getConnectionTimeout(); final HttpHost target = new HttpHost(request.getAuthority(), request.getScheme()); final Future leaseFuture = leaseEndpoint(target, connectTimeout, clientContext, diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ExecRuntimeImpl.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ExecRuntimeImpl.java index 75e876e2b9..86c8f3aa02 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ExecRuntimeImpl.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ExecRuntimeImpl.java @@ -149,11 +149,10 @@ private void connectEndpoint(final ConnectionEndpoint endpoint, final HttpClient } } 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()); + final TimeValue timeout = requestConfig.getConnectionTimeout(); + manager.connect(endpoint, timeout, context); + if (TimeValue.isPositive(timeout)) { + endpoint.setSocketTimeout(timeout.toMillisIntBound()); } } diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/config/TestRequestConfig.java b/httpclient5/src/test/java/org/apache/hc/client5/http/config/TestRequestConfig.java index 487b3859dc..02060a37ba 100644 --- a/httpclient5/src/test/java/org/apache/hc/client5/http/config/TestRequestConfig.java +++ b/httpclient5/src/test/java/org/apache/hc/client5/http/config/TestRequestConfig.java @@ -47,8 +47,7 @@ public void testBasics() { @Test public void testDefaults() { final RequestConfig config = RequestConfig.DEFAULT; - Assert.assertEquals(Timeout.ZERO_MILLISECONDS, config.getSocketTimeout()); - Assert.assertEquals(Timeout.ofMinutes(3), config.getConnectTimeout()); + Assert.assertEquals(Timeout.ofMinutes(3), config.getConnectionTimeout()); Assert.assertEquals(Timeout.ofMinutes(3), config.getConnectionRequestTimeout()); Assert.assertEquals(false, config.isExpectContinueEnabled()); Assert.assertEquals(true, config.isAuthenticationEnabled()); @@ -65,7 +64,6 @@ public void testDefaults() { @Test public void testBuildAndCopy() throws Exception { final RequestConfig config0 = RequestConfig.custom() - .setSocketTimeout(22, TimeUnit.MILLISECONDS) .setConnectTimeout(33, TimeUnit.MILLISECONDS) .setConnectionRequestTimeout(44, TimeUnit.MILLISECONDS) .setExpectContinueEnabled(true) @@ -80,8 +78,7 @@ public void testBuildAndCopy() throws Exception { .setContentCompressionEnabled(false) .build(); final RequestConfig config = RequestConfig.copy(config0).build(); - Assert.assertEquals(TimeValue.ofMillis(22), config.getSocketTimeout()); - Assert.assertEquals(TimeValue.ofMillis(33), config.getConnectTimeout()); + Assert.assertEquals(TimeValue.ofMillis(33), config.getConnectionTimeout()); Assert.assertEquals(TimeValue.ofMillis(44), config.getConnectionRequestTimeout()); Assert.assertEquals(true, config.isExpectContinueEnabled()); Assert.assertEquals(false, config.isAuthenticationEnabled()); diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestExecRuntimeImpl.java b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestExecRuntimeImpl.java index 5b6cf35063..07cc6524a9 100644 --- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestExecRuntimeImpl.java +++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestExecRuntimeImpl.java @@ -83,7 +83,6 @@ public void testAcquireEndpoint() throws Exception { final HttpClientContext context = HttpClientContext.create(); final RequestConfig config = RequestConfig.custom() .setConnectTimeout(123, TimeUnit.MILLISECONDS) - .setSocketTimeout(234, TimeUnit.MILLISECONDS) .setConnectionRequestTimeout(345, TimeUnit.MILLISECONDS) .build(); context.setRequestConfig(config); @@ -261,7 +260,6 @@ public void testConnectEndpoint() throws Exception { final HttpClientContext context = HttpClientContext.create(); final RequestConfig config = RequestConfig.custom() .setConnectTimeout(123, TimeUnit.MILLISECONDS) - .setSocketTimeout(234, TimeUnit.MILLISECONDS) .setConnectionRequestTimeout(345, TimeUnit.MILLISECONDS) .build(); context.setRequestConfig(config); @@ -279,7 +277,7 @@ public void testConnectEndpoint() throws Exception { execRuntime.connect(context); Mockito.verify(mgr).connect(connectionEndpoint, TimeValue.ofMillis(123), context); - Mockito.verify(connectionEndpoint).setSocketTimeout(234); + Mockito.verify(connectionEndpoint).setSocketTimeout(123); } @Test