[WAGON-480] Non-threadsafe HttpClientContext is shared between threaded use of HttpClientWagon
The HttpClientContext is created fresh with every execute(), guaranteeing thread safety. Project: http://git-wip-us.apache.org/repos/asf/maven-wagon/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-wagon/commit/512bf76b Tree: http://git-wip-us.apache.org/repos/asf/maven-wagon/tree/512bf76b Diff: http://git-wip-us.apache.org/repos/asf/maven-wagon/diff/512bf76b Branch: refs/heads/jetty-8 Commit: 512bf76b5c0d99c28431b2fedc401bc0919569f2 Parents: bb77d50 Author: Michael Osipov <micha...@apache.org> Authored: Wed Dec 28 01:20:07 2016 +0100 Committer: Michael Osipov <micha...@apache.org> Committed: Tue Jan 3 21:35:04 2017 +0100 ---------------------------------------------------------------------- .../maven/wagon/providers/http/AbstractHttpClientWagon.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/512bf76b/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java b/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java index d38506f..9ef9544 100755 --- a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java +++ b/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java @@ -383,8 +383,6 @@ public abstract class AbstractHttpClientWagon private AuthCache authCache; - private HttpClientContext localContext; - private Closeable closeable; /** @@ -414,11 +412,8 @@ public abstract class AbstractHttpClientWagon { repository.setUrl( getURL( repository ) ); - localContext = HttpClientContext.create(); credentialsProvider = new BasicCredentialsProvider(); authCache = new BasicAuthCache(); - localContext.setCredentialsProvider( credentialsProvider ); - localContext.setAuthCache( authCache ); if ( authenticationInfo != null ) { @@ -788,6 +783,9 @@ public abstract class AbstractHttpClientWagon requestConfigBuilder.setRedirectsEnabled( false ); } + HttpClientContext localContext = HttpClientContext.create(); + localContext.setCredentialsProvider( credentialsProvider ); + localContext.setAuthCache( authCache ); localContext.setRequestConfig( requestConfigBuilder.build() ); if ( config != null && config.isUsePreemptive() )