Skip to content

Commit

Permalink
[WAGON-628] Default connect timeout not set when no HttpMethodConfigu…
Browse files Browse the repository at this point in the history
…ration 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
  • Loading branch information
michael-o committed Jun 18, 2022
1 parent d7f3367 commit 17529c6
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 )
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/**
Expand All @@ -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;
Expand Down Expand Up @@ -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;
}

}

0 comments on commit 17529c6

Please sign in to comment.