From 17529c6232a02ee836107bae11a9b5eb6778afb1 Mon Sep 17 00:00:00 2001 From: Michael Osipov Date: Sun, 19 Jun 2022 01:11:54 +0200 Subject: [PATCH] [WAGON-628] Default connect timeout not set when no HttpMethodConfiguration is available Set first request config values then have every HTTP method separately apply its config. They can safely overwrite timeouts even with -1 (indefinite). There is also no need to explicitly set PUT default config because it is always set before config is applied. This closes #84 --- .../shared/http/AbstractHttpClientWagon.java | 18 +++++++-------- .../wagon/shared/http/ConfigurationUtils.java | 11 +++------ .../wagon/shared/http/HttpConfiguration.java | 23 ++++++------------- 3 files changed, 18 insertions(+), 34 deletions(-) mode change 100755 => 100644 wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/ConfigurationUtils.java diff --git a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java index bb787771d..c49fb5b27 100644 --- a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java +++ b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java @@ -950,21 +950,19 @@ protected CloseableHttpResponse execute( HttpUriRequest httpMethod ) requestConfigBuilder.setProxy( proxy ); } - HttpMethodConfiguration config = - httpConfiguration == null ? null : httpConfiguration.getMethodConfiguration( httpMethod ); + requestConfigBuilder.setConnectTimeout( getTimeout() ); + requestConfigBuilder.setSocketTimeout( getReadTimeout() ); + if ( httpMethod instanceof HttpPut ) + { + requestConfigBuilder.setExpectContinueEnabled( true ); + } + HttpMethodConfiguration config = + httpConfiguration == null ? null : httpConfiguration.getMethodConfiguration( httpMethod ); if ( config != null ) { ConfigurationUtils.copyConfig( config, requestConfigBuilder ); } - else - { - requestConfigBuilder.setSocketTimeout( getReadTimeout() ); - if ( httpMethod instanceof HttpPut ) - { - requestConfigBuilder.setExpectContinueEnabled( true ); - } - } HttpClientContext localContext = HttpClientContext.create(); localContext.setCredentialsProvider( credentialsProvider ); diff --git a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/ConfigurationUtils.java b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/ConfigurationUtils.java old mode 100755 new mode 100644 index 0a1320a5d..5214739ed --- a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/ConfigurationUtils.java +++ b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/ConfigurationUtils.java @@ -61,14 +61,9 @@ public class ConfigurationUtils public static void copyConfig( HttpMethodConfiguration config, RequestConfig.Builder builder ) { - if ( config.getConnectionTimeout() > 0 ) - { - builder.setConnectTimeout( config.getConnectionTimeout() ); - } - if ( config.getReadTimeout() > 0 ) - { - builder.setSocketTimeout( config.getReadTimeout() ); - } + builder.setConnectTimeout( config.getConnectionTimeout() ); + builder.setSocketTimeout( config.getReadTimeout() ); + Properties params = config.getParams(); if ( params != null ) { diff --git a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/HttpConfiguration.java b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/HttpConfiguration.java index 0a8652c27..97d4d5331 100644 --- a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/HttpConfiguration.java +++ b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/HttpConfiguration.java @@ -19,9 +19,6 @@ * under the License. */ -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpHead; -import org.apache.http.client.methods.HttpPut; import org.apache.http.client.methods.HttpUriRequest; /** @@ -30,9 +27,6 @@ public class HttpConfiguration { - private static final HttpMethodConfiguration DEFAULT_PUT = - new HttpMethodConfiguration().addParam( "http.protocol.expect-continue", "%b,true" ); - private HttpMethodConfiguration all; private HttpMethodConfiguration get; @@ -87,20 +81,17 @@ public HttpConfiguration setHead( HttpMethodConfiguration head ) public HttpMethodConfiguration getMethodConfiguration( HttpUriRequest method ) { - if ( method instanceof HttpGet ) + switch ( method.getMethod() ) { + case "GET": return ConfigurationUtils.merge( all, get ); - } - else if ( method instanceof HttpPut ) - { - return ConfigurationUtils.merge( DEFAULT_PUT, all, put ); - } - else if ( method instanceof HttpHead ) - { + case "PUT": + return ConfigurationUtils.merge( all, put ); + case "HEAD": return ConfigurationUtils.merge( all, head ); + default: + return all; } - - return all; } }