From cef513679a025dbbe4479c871231400fd39b210d Mon Sep 17 00:00:00 2001
From: Michael Simacek
Date: Fri, 24 Jun 2016 12:18:14 +0200
Subject: [PATCH] Commit missing patch
---
...ove-missing-compile-time-annotations.patch | 6495 +++++++++++++++++
1 file changed, 6495 insertions(+)
create mode 100644 0002-Remove-missing-compile-time-annotations.patch
diff --git a/0002-Remove-missing-compile-time-annotations.patch b/0002-Remove-missing-compile-time-annotations.patch
new file mode 100644
index 0000000..d836f78
--- /dev/null
+++ b/0002-Remove-missing-compile-time-annotations.patch
@@ -0,0 +1,6495 @@
+From 939155c3096786eb6ae32470890166af309a2256 Mon Sep 17 00:00:00 2001
+From: Michael Simacek
+Date: Fri, 24 Jun 2016 10:28:52 +0200
+Subject: [PATCH 2/2] Remove missing compile-time annotations
+
+---
+ .../fluent/InternalEntityEnclosingHttpRequest.java | 2 --
+ .../http/client/fluent/InternalHttpRequest.java | 2 --
+ .../http/impl/client/cache/CachingHttpClient.java | 2 --
+ .../apache/http/client/cache/HeaderConstants.java | 2 --
+ .../apache/http/client/cache/HttpCacheContext.java | 2 --
+ .../apache/http/client/cache/HttpCacheEntry.java | 2 --
+ .../org/apache/http/client/cache/InputLimit.java | 2 --
+ .../impl/client/cache/BasicHttpCacheStorage.java | 2 --
+ .../http/impl/client/cache/BasicIdGenerator.java | 4 ----
+ .../apache/http/impl/client/cache/CacheEntity.java | 2 --
+ .../http/impl/client/cache/CacheEntryUpdater.java | 2 --
+ .../http/impl/client/cache/CacheInvalidator.java | 2 --
+ .../http/impl/client/cache/CacheKeyGenerator.java | 2 --
+ .../impl/client/cache/CacheValidityPolicy.java | 2 --
+ .../impl/client/cache/CacheableRequestPolicy.java | 2 --
+ .../client/cache/CachedHttpResponseGenerator.java | 2 --
+ .../cache/CachedResponseSuitabilityChecker.java | 2 --
+ .../apache/http/impl/client/cache/CachingExec.java | 2 --
+ .../http/impl/client/cache/CachingHttpClients.java | 2 --
+ .../http/impl/client/cache/CombinedEntity.java | 2 --
+ .../client/cache/ConditionalRequestBuilder.java | 2 --
+ .../impl/client/cache/DefaultFailureCache.java | 2 --
+ .../cache/DefaultHttpCacheEntrySerializer.java | 2 --
+ .../ExponentialBackOffSchedulingStrategy.java | 2 --
+ .../http/impl/client/cache/FailureCacheValue.java | 2 --
+ .../http/impl/client/cache/FileResource.java | 2 --
+ .../impl/client/cache/FileResourceFactory.java | 2 --
+ .../http/impl/client/cache/HeapResource.java | 2 --
+ .../impl/client/cache/HeapResourceFactory.java | 2 --
+ .../org/apache/http/impl/client/cache/IOUtils.java | 2 --
+ .../client/cache/ImmediateSchedulingStrategy.java | 2 --
+ .../impl/client/cache/ManagedHttpCacheStorage.java | 2 --
+ .../impl/client/cache/OptionsHttp11Response.java | 2 --
+ .../org/apache/http/impl/client/cache/Proxies.java | 2 --
+ .../client/cache/RequestProtocolCompliance.java | 2 --
+ .../http/impl/client/cache/ResourceReference.java | 2 --
+ .../impl/client/cache/ResponseCachingPolicy.java | 2 --
+ .../client/cache/ResponseProtocolCompliance.java | 2 --
+ .../impl/client/cache/ResponseProxyHandler.java | 2 --
+ .../client/cache/SizeLimitedResponseReader.java | 2 --
+ .../impl/auth/win/CurrentWindowsCredentials.java | 2 --
+ .../impl/auth/win/WindowsCredentialsProvider.java | 2 --
+ .../impl/auth/win/WindowsNTLMSchemeFactory.java | 2 --
+ .../http/impl/auth/win/WindowsNegotiateScheme.java | 2 --
+ .../auth/win/WindowsNegotiateSchemeFactory.java | 2 --
+ .../org/apache/http/auth/params/AuthParams.java | 2 --
+ .../org/apache/http/client/params/AuthPolicy.java | 2 --
+ .../apache/http/client/params/ClientParamBean.java | 2 --
+ .../apache/http/client/params/CookiePolicy.java | 2 --
+ .../http/client/params/HttpClientParams.java | 2 --
+ .../client/protocol/ClientContextConfigurer.java | 2 --
+ .../protocol/RequestProxyAuthentication.java | 2 --
+ .../protocol/RequestTargetAuthentication.java | 2 --
+ .../http/client/protocol/ResponseAuthCache.java | 2 --
+ .../org/apache/http/client/utils/JdkIdn.java | 2 --
+ .../org/apache/http/client/utils/Punycode.java | 2 --
+ .../org/apache/http/client/utils/Rfc3492Idn.java | 2 --
+ .../apache/http/conn/BasicEofSensorWatcher.java | 2 --
+ .../org/apache/http/conn/BasicManagedEntity.java | 2 --
+ .../http/conn/MultihomePlainSocketFactory.java | 2 --
+ .../http/conn/params/ConnManagerParamBean.java | 2 --
+ .../apache/http/conn/params/ConnManagerParams.java | 2 --
+ .../apache/http/conn/params/ConnPerRouteBean.java | 2 --
+ .../http/conn/params/ConnRouteParamBean.java | 2 --
+ .../apache/http/conn/params/ConnRouteParams.java | 2 --
+ .../http/conn/scheme/PlainSocketFactory.java | 2 --
+ .../apache/http/conn/ssl/SSLContextBuilder.java | 2 --
+ .../org/apache/http/conn/ssl/SSLContexts.java | 2 --
+ .../org/apache/http/conn/ssl/SSLSocketFactory.java | 2 --
+ .../http/cookie/params/CookieSpecParamBean.java | 2 --
+ .../impl/client/AbstractAuthenticationHandler.java | 2 --
+ .../http/impl/client/AbstractHttpClient.java | 22 ----------------------
+ .../impl/client/AuthenticationStrategyAdaptor.java | 2 --
+ .../http/impl/client/AutoRetryHttpClient.java | 2 --
+ .../apache/http/impl/client/ClientParamsStack.java | 2 --
+ .../impl/client/CloseableHttpResponseProxy.java | 2 --
+ .../impl/client/ContentEncodingHttpClient.java | 2 --
+ .../apache/http/impl/client/DefaultHttpClient.java | 2 --
+ .../client/DefaultProxyAuthenticationHandler.java | 2 --
+ .../http/impl/client/DefaultRedirectHandler.java | 2 --
+ .../client/DefaultRedirectStrategyAdaptor.java | 2 --
+ .../http/impl/client/DefaultRequestDirector.java | 2 --
+ .../client/DefaultTargetAuthenticationHandler.java | 2 --
+ .../org/apache/http/impl/client/RoutedRequest.java | 2 --
+ .../http/impl/client/SystemDefaultHttpClient.java | 2 --
+ .../http/impl/client/TunnelRefusedException.java | 2 --
+ .../http/impl/conn/AbstractClientConnAdapter.java | 2 --
+ .../impl/conn/BasicClientConnectionManager.java | 6 ------
+ .../http/impl/conn/DefaultClientConnection.java | 2 --
+ .../impl/conn/DefaultClientConnectionOperator.java | 2 --
+ .../http/impl/conn/DefaultHttpRoutePlanner.java | 2 --
+ .../http/impl/conn/DefaultResponseParser.java | 2 --
+ .../http/impl/conn/LoggingSessionInputBuffer.java | 2 --
+ .../http/impl/conn/LoggingSessionOutputBuffer.java | 2 --
+ .../impl/conn/ManagedClientConnectionImpl.java | 2 --
+ .../impl/conn/PoolingClientConnectionManager.java | 2 --
+ .../http/impl/conn/ProxySelectorRoutePlanner.java | 2 --
+ .../http/impl/conn/SchemeRegistryFactory.java | 2 --
+ .../http/impl/conn/SingleClientConnManager.java | 7 -------
+ .../http/impl/conn/tsccm/AbstractConnPool.java | 3 ---
+ .../conn/tsccm/ThreadSafeClientConnManager.java | 2 --
+ .../org/apache/http/impl/cookie/BestMatchSpec.java | 2 --
+ .../http/impl/cookie/BestMatchSpecFactory.java | 2 --
+ .../apache/http/impl/cookie/BrowserCompatSpec.java | 2 --
+ .../http/impl/cookie/BrowserCompatSpecFactory.java | 2 --
+ .../BrowserCompatVersionAttributeHandler.java | 2 --
+ .../http/impl/cookie/DateParseException.java | 2 --
+ .../org/apache/http/impl/cookie/DateUtils.java | 2 --
+ .../apache/http/impl/cookie/IgnoreSpecFactory.java | 2 --
+ .../http/impl/cookie/NetscapeDraftSpecFactory.java | 2 --
+ .../http/impl/cookie/PublicSuffixListParser.java | 2 --
+ .../http/impl/cookie/RFC2109SpecFactory.java | 2 --
+ .../http/impl/cookie/RFC2965SpecFactory.java | 2 --
+ .../src/main/java/org/apache/http/auth/AUTH.java | 2 --
+ .../main/java/org/apache/http/auth/AuthOption.java | 2 --
+ .../org/apache/http/auth/AuthSchemeRegistry.java | 2 --
+ .../main/java/org/apache/http/auth/AuthScope.java | 2 --
+ .../main/java/org/apache/http/auth/AuthState.java | 2 --
+ .../apache/http/auth/AuthenticationException.java | 2 --
+ .../org/apache/http/auth/BasicUserPrincipal.java | 2 --
+ .../http/auth/InvalidCredentialsException.java | 2 --
+ .../org/apache/http/auth/KerberosCredentials.java | 2 --
+ .../http/auth/MalformedChallengeException.java | 2 --
+ .../java/org/apache/http/auth/NTCredentials.java | 2 --
+ .../java/org/apache/http/auth/NTUserPrincipal.java | 2 --
+ .../http/auth/UsernamePasswordCredentials.java | 2 --
+ .../http/client/CircularRedirectException.java | 2 --
+ .../http/client/ClientProtocolException.java | 2 --
+ .../apache/http/client/HttpResponseException.java | 2 --
+ .../http/client/NonRepeatableRequestException.java | 2 --
+ .../org/apache/http/client/RedirectException.java | 2 --
+ .../org/apache/http/client/config/AuthSchemes.java | 2 --
+ .../org/apache/http/client/config/CookieSpecs.java | 2 --
+ .../apache/http/client/config/RequestConfig.java | 2 --
+ .../apache/http/client/entity/EntityBuilder.java | 2 --
+ .../entity/LazyDecompressingInputStream.java | 2 --
+ .../http/client/entity/UrlEncodedFormEntity.java | 2 --
+ .../org/apache/http/client/methods/HttpDelete.java | 2 --
+ .../methods/HttpEntityEnclosingRequestBase.java | 2 --
+ .../org/apache/http/client/methods/HttpGet.java | 2 --
+ .../org/apache/http/client/methods/HttpHead.java | 2 --
+ .../apache/http/client/methods/HttpOptions.java | 2 --
+ .../org/apache/http/client/methods/HttpPatch.java | 2 --
+ .../org/apache/http/client/methods/HttpPost.java | 2 --
+ .../org/apache/http/client/methods/HttpPut.java | 2 --
+ .../http/client/methods/HttpRequestBase.java | 2 --
+ .../http/client/methods/HttpRequestWrapper.java | 2 --
+ .../org/apache/http/client/methods/HttpTrace.java | 2 --
+ .../apache/http/client/methods/RequestBuilder.java | 2 --
+ .../http/client/protocol/HttpClientContext.java | 2 --
+ .../client/protocol/RequestAcceptEncoding.java | 2 --
+ .../http/client/protocol/RequestAddCookies.java | 2 --
+ .../http/client/protocol/RequestAuthCache.java | 2 --
+ .../client/protocol/RequestClientConnControl.java | 2 --
+ .../client/protocol/RequestDefaultHeaders.java | 2 --
+ .../client/protocol/RequestExpectContinue.java | 2 --
+ .../client/protocol/ResponseContentEncoding.java | 2 --
+ .../client/protocol/ResponseProcessCookies.java | 2 --
+ .../org/apache/http/client/utils/CloneUtils.java | 2 --
+ .../org/apache/http/client/utils/DateUtils.java | 2 --
+ .../org/apache/http/client/utils/URIBuilder.java | 2 --
+ .../org/apache/http/client/utils/URIUtils.java | 2 --
+ .../apache/http/client/utils/URLEncodedUtils.java | 2 --
+ .../apache/http/conn/ConnectTimeoutException.java | 2 --
+ .../http/conn/ConnectionPoolTimeoutException.java | 2 --
+ .../org/apache/http/conn/EofSensorInputStream.java | 2 --
+ .../apache/http/conn/HttpHostConnectException.java | 2 --
+ .../http/conn/UnsupportedSchemeException.java | 2 --
+ .../http/conn/routing/BasicRouteDirector.java | 2 --
+ .../org/apache/http/conn/routing/HttpRoute.java | 2 --
+ .../org/apache/http/conn/routing/RouteTracker.java | 2 --
+ .../java/org/apache/http/conn/scheme/Scheme.java | 2 --
+ .../apache/http/conn/scheme/SchemeRegistry.java | 2 --
+ .../conn/socket/PlainConnectionSocketFactory.java | 2 --
+ .../http/conn/ssl/AllowAllHostnameVerifier.java | 2 --
+ .../conn/ssl/BrowserCompatHostnameVerifier.java | 2 --
+ .../http/conn/ssl/DefaultHostnameVerifier.java | 2 --
+ .../apache/http/conn/ssl/NoopHostnameVerifier.java | 2 --
+ .../http/conn/ssl/SSLConnectionSocketFactory.java | 2 --
+ .../http/conn/ssl/StrictHostnameVerifier.java | 2 --
+ .../apache/http/conn/util/InetAddressUtils.java | 2 --
+ .../apache/http/conn/util/PublicSuffixList.java | 2 --
+ .../http/conn/util/PublicSuffixListParser.java | 2 --
+ .../apache/http/conn/util/PublicSuffixMatcher.java | 2 --
+ .../http/conn/util/PublicSuffixMatcherLoader.java | 2 --
+ .../http/cookie/CookieIdentityComparator.java | 2 --
+ .../java/org/apache/http/cookie/CookieOrigin.java | 2 --
+ .../apache/http/cookie/CookiePathComparator.java | 2 --
+ .../http/cookie/CookiePriorityComparator.java | 2 --
+ .../CookieRestrictionViolationException.java | 2 --
+ .../org/apache/http/cookie/CookieSpecRegistry.java | 2 --
+ .../http/cookie/MalformedCookieException.java | 2 --
+ .../org/apache/http/impl/auth/AuthSchemeBase.java | 2 --
+ .../org/apache/http/impl/auth/BasicScheme.java | 2 --
+ .../apache/http/impl/auth/BasicSchemeFactory.java | 2 --
+ .../org/apache/http/impl/auth/DigestScheme.java | 2 --
+ .../apache/http/impl/auth/DigestSchemeFactory.java | 2 --
+ .../org/apache/http/impl/auth/GGSSchemeBase.java | 2 --
+ .../org/apache/http/impl/auth/KerberosScheme.java | 2 --
+ .../http/impl/auth/KerberosSchemeFactory.java | 2 --
+ .../apache/http/impl/auth/NTLMEngineException.java | 2 --
+ .../org/apache/http/impl/auth/NTLMEngineImpl.java | 2 --
+ .../java/org/apache/http/impl/auth/NTLMScheme.java | 2 --
+ .../apache/http/impl/auth/NTLMSchemeFactory.java | 2 --
+ .../org/apache/http/impl/auth/RFC2617Scheme.java | 2 --
+ .../org/apache/http/impl/auth/SPNegoScheme.java | 2 --
+ .../apache/http/impl/auth/SPNegoSchemeFactory.java | 2 --
+ .../auth/UnsupportedDigestAlgorithmException.java | 2 --
+ .../http/impl/client/AbstractResponseHandler.java | 2 --
+ .../impl/client/AuthenticationStrategyImpl.java | 2 --
+ .../apache/http/impl/client/BasicAuthCache.java | 2 --
+ .../apache/http/impl/client/BasicCookieStore.java | 4 ----
+ .../http/impl/client/BasicCredentialsProvider.java | 2 --
+ .../http/impl/client/BasicResponseHandler.java | 2 --
+ .../http/impl/client/CloseableHttpClient.java | 2 --
+ .../client/DefaultConnectionKeepAliveStrategy.java | 2 --
+ .../client/DefaultHttpRequestRetryHandler.java | 2 --
+ .../http/impl/client/DefaultRedirectStrategy.java | 2 --
+ .../DefaultServiceUnavailableRetryStrategy.java | 2 --
+ .../http/impl/client/DefaultUserTokenHandler.java | 2 --
+ .../impl/client/EntityEnclosingRequestWrapper.java | 2 --
+ .../impl/client/FutureRequestExecutionService.java | 2 --
+ .../apache/http/impl/client/HttpClientBuilder.java | 2 --
+ .../org/apache/http/impl/client/HttpClients.java | 2 --
+ .../http/impl/client/InternalHttpClient.java | 2 --
+ .../http/impl/client/LaxRedirectStrategy.java | 2 --
+ .../apache/http/impl/client/MinimalHttpClient.java | 2 --
+ .../http/impl/client/NoopUserTokenHandler.java | 2 --
+ .../impl/client/ProxyAuthenticationStrategy.java | 2 --
+ .../apache/http/impl/client/RedirectLocations.java | 2 --
+ .../apache/http/impl/client/RequestWrapper.java | 2 --
+ .../client/StandardHttpRequestRetryHandler.java | 2 --
+ .../client/SystemDefaultCredentialsProvider.java | 2 --
+ .../impl/client/TargetAuthenticationStrategy.java | 2 --
+ .../conn/BasicHttpClientConnectionManager.java | 11 -----------
+ .../main/java/org/apache/http/impl/conn/CPool.java | 2 --
+ .../java/org/apache/http/impl/conn/CPoolEntry.java | 2 --
+ .../java/org/apache/http/impl/conn/CPoolProxy.java | 2 --
+ .../impl/conn/ConnectionShutdownException.java | 2 --
+ .../conn/DefaultHttpClientConnectionOperator.java | 2 --
+ .../http/impl/conn/DefaultHttpResponseParser.java | 2 --
+ .../conn/DefaultHttpResponseParserFactory.java | 2 --
+ .../conn/DefaultManagedHttpClientConnection.java | 2 --
+ .../http/impl/conn/DefaultProxyRoutePlanner.java | 2 --
+ .../apache/http/impl/conn/DefaultRoutePlanner.java | 2 --
+ .../http/impl/conn/DefaultSchemePortResolver.java | 2 --
+ .../apache/http/impl/conn/LoggingInputStream.java | 2 --
+ .../conn/LoggingManagedHttpClientConnection.java | 2 --
+ .../apache/http/impl/conn/LoggingOutputStream.java | 2 --
+ .../conn/ManagedHttpClientConnectionFactory.java | 2 --
+ .../conn/PoolingHttpClientConnectionManager.java | 2 --
+ .../http/impl/conn/SystemDefaultRoutePlanner.java | 2 --
+ .../main/java/org/apache/http/impl/conn/Wire.java | 2 --
+ .../cookie/AbstractCookieAttributeHandler.java | 2 --
+ .../http/impl/cookie/AbstractCookieSpec.java | 2 --
+ .../apache/http/impl/cookie/BasicClientCookie.java | 2 --
+ .../http/impl/cookie/BasicClientCookie2.java | 2 --
+ .../http/impl/cookie/BasicCommentHandler.java | 2 --
+ .../http/impl/cookie/BasicDomainHandler.java | 2 --
+ .../http/impl/cookie/BasicExpiresHandler.java | 2 --
+ .../http/impl/cookie/BasicMaxAgeHandler.java | 2 --
+ .../apache/http/impl/cookie/BasicPathHandler.java | 2 --
+ .../http/impl/cookie/BasicSecureHandler.java | 2 --
+ .../apache/http/impl/cookie/CookieSpecBase.java | 2 --
+ .../apache/http/impl/cookie/DefaultCookieSpec.java | 2 --
+ .../impl/cookie/DefaultCookieSpecProvider.java | 2 --
+ .../org/apache/http/impl/cookie/IgnoreSpec.java | 2 --
+ .../http/impl/cookie/IgnoreSpecProvider.java | 2 --
+ .../apache/http/impl/cookie/LaxExpiresHandler.java | 2 --
+ .../apache/http/impl/cookie/LaxMaxAgeHandler.java | 2 --
+ .../http/impl/cookie/NetscapeDomainHandler.java | 2 --
+ .../impl/cookie/NetscapeDraftHeaderParser.java | 2 --
+ .../apache/http/impl/cookie/NetscapeDraftSpec.java | 2 --
+ .../impl/cookie/NetscapeDraftSpecProvider.java | 2 --
+ .../http/impl/cookie/PublicSuffixDomainFilter.java | 2 --
+ .../http/impl/cookie/RFC2109DomainHandler.java | 2 --
+ .../org/apache/http/impl/cookie/RFC2109Spec.java | 2 --
+ .../http/impl/cookie/RFC2109SpecProvider.java | 2 --
+ .../http/impl/cookie/RFC2109VersionHandler.java | 2 --
+ .../cookie/RFC2965CommentUrlAttributeHandler.java | 2 --
+ .../cookie/RFC2965DiscardAttributeHandler.java | 2 --
+ .../impl/cookie/RFC2965DomainAttributeHandler.java | 2 --
+ .../impl/cookie/RFC2965PortAttributeHandler.java | 2 --
+ .../org/apache/http/impl/cookie/RFC2965Spec.java | 2 --
+ .../http/impl/cookie/RFC2965SpecProvider.java | 2 --
+ .../cookie/RFC2965VersionAttributeHandler.java | 2 --
+ .../apache/http/impl/cookie/RFC6265CookieSpec.java | 2 --
+ .../impl/cookie/RFC6265CookieSpecProvider.java | 2 --
+ .../apache/http/impl/cookie/RFC6265LaxSpec.java | 2 --
+ .../apache/http/impl/cookie/RFC6265StrictSpec.java | 2 --
+ .../http/impl/execchain/BackoffStrategyExec.java | 2 --
+ .../http/impl/execchain/ConnectionHolder.java | 2 --
+ .../http/impl/execchain/HttpResponseProxy.java | 2 --
+ .../apache/http/impl/execchain/MainClientExec.java | 2 --
+ .../http/impl/execchain/MinimalClientExec.java | 2 --
+ .../apache/http/impl/execchain/ProtocolExec.java | 2 --
+ .../apache/http/impl/execchain/RedirectExec.java | 2 --
+ .../impl/execchain/RequestAbortedException.java | 2 --
+ .../http/impl/execchain/RequestEntityProxy.java | 2 --
+ .../http/impl/execchain/ResponseEntityProxy.java | 2 --
+ .../org/apache/http/impl/execchain/RetryExec.java | 2 --
+ .../execchain/ServiceUnavailableRetryExec.java | 2 --
+ .../impl/execchain/TunnelRefusedException.java | 2 --
+ 303 files changed, 649 deletions(-)
+
+diff --git a/fluent-hc/src/main/java/org/apache/http/client/fluent/InternalEntityEnclosingHttpRequest.java b/fluent-hc/src/main/java/org/apache/http/client/fluent/InternalEntityEnclosingHttpRequest.java
+index 6e0b4d6..a7972b8 100644
+--- a/fluent-hc/src/main/java/org/apache/http/client/fluent/InternalEntityEnclosingHttpRequest.java
++++ b/fluent-hc/src/main/java/org/apache/http/client/fluent/InternalEntityEnclosingHttpRequest.java
+@@ -32,10 +32,8 @@ import java.net.URI;
+ import org.apache.http.Header;
+ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpEntityEnclosingRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.protocol.HTTP;
+
+-@NotThreadSafe
+ class InternalEntityEnclosingHttpRequest extends InternalHttpRequest implements HttpEntityEnclosingRequest {
+
+ private HttpEntity entity;
+diff --git a/fluent-hc/src/main/java/org/apache/http/client/fluent/InternalHttpRequest.java b/fluent-hc/src/main/java/org/apache/http/client/fluent/InternalHttpRequest.java
+index 8d45954..0dccb31 100644
+--- a/fluent-hc/src/main/java/org/apache/http/client/fluent/InternalHttpRequest.java
++++ b/fluent-hc/src/main/java/org/apache/http/client/fluent/InternalHttpRequest.java
+@@ -34,7 +34,6 @@ import java.util.concurrent.atomic.AtomicReference;
+ import org.apache.http.HttpVersion;
+ import org.apache.http.ProtocolVersion;
+ import org.apache.http.RequestLine;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.config.RequestConfig;
+ import org.apache.http.client.methods.Configurable;
+ import org.apache.http.client.methods.HttpExecutionAware;
+@@ -44,7 +43,6 @@ import org.apache.http.message.AbstractHttpMessage;
+ import org.apache.http.message.BasicRequestLine;
+ import org.apache.http.util.Args;
+
+-@NotThreadSafe
+ class InternalHttpRequest extends AbstractHttpMessage
+ implements HttpUriRequest, HttpExecutionAware, Configurable {
+
+diff --git a/httpclient-cache/src/main/java-deprecated/org/apache/http/impl/client/cache/CachingHttpClient.java b/httpclient-cache/src/main/java-deprecated/org/apache/http/impl/client/cache/CachingHttpClient.java
+index a54ff19..eecc392 100644
+--- a/httpclient-cache/src/main/java-deprecated/org/apache/http/impl/client/cache/CachingHttpClient.java
++++ b/httpclient-cache/src/main/java-deprecated/org/apache/http/impl/client/cache/CachingHttpClient.java
+@@ -57,7 +57,6 @@ import org.apache.http.HttpVersion;
+ import org.apache.http.ProtocolException;
+ import org.apache.http.ProtocolVersion;
+ import org.apache.http.RequestLine;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.ClientProtocolException;
+ import org.apache.http.client.HttpClient;
+ import org.apache.http.client.ResponseHandler;
+@@ -126,7 +125,6 @@ import org.apache.http.util.VersionInfo;
+ * @deprecated (4.3) use {@link CachingHttpClientBuilder} or {@link CachingHttpClients}.
+ */
+ @Deprecated
+-@ThreadSafe // So long as the responseCache implementation is threadsafe
+ public class CachingHttpClient implements HttpClient {
+
+ /**
+diff --git a/httpclient-cache/src/main/java/org/apache/http/client/cache/HeaderConstants.java b/httpclient-cache/src/main/java/org/apache/http/client/cache/HeaderConstants.java
+index 0a25f24..2f93261 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/client/cache/HeaderConstants.java
++++ b/httpclient-cache/src/main/java/org/apache/http/client/cache/HeaderConstants.java
+@@ -26,13 +26,11 @@
+ */
+ package org.apache.http.client.cache;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Records static constants for various HTTP header names.
+ * @since 4.1
+ */
+-@Immutable
+ public class HeaderConstants {
+
+ public static final String GET_METHOD = "GET";
+diff --git a/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheContext.java b/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheContext.java
+index 6c8af1d..f1a0d19 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheContext.java
++++ b/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheContext.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.client.cache;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.protocol.HttpClientContext;
+ import org.apache.http.protocol.BasicHttpContext;
+ import org.apache.http.protocol.HttpContext;
+@@ -34,7 +33,6 @@ import org.apache.http.protocol.HttpContext;
+ /**
+ * @since 4.3
+ */
+-@NotThreadSafe
+ public class HttpCacheContext extends HttpClientContext {
+
+ /**
+diff --git a/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheEntry.java b/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheEntry.java
+index d8bf81b..b6bebcd 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheEntry.java
++++ b/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheEntry.java
+@@ -36,7 +36,6 @@ import org.apache.http.Header;
+ import org.apache.http.HeaderIterator;
+ import org.apache.http.ProtocolVersion;
+ import org.apache.http.StatusLine;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.utils.DateUtils;
+ import org.apache.http.message.HeaderGroup;
+ import org.apache.http.protocol.HTTP;
+@@ -51,7 +50,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ public class HttpCacheEntry implements Serializable {
+
+ private static final long serialVersionUID = -6300496422359477413L;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/client/cache/InputLimit.java b/httpclient-cache/src/main/java/org/apache/http/client/cache/InputLimit.java
+index dd96eeb..40cf2b7 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/client/cache/InputLimit.java
++++ b/httpclient-cache/src/main/java/org/apache/http/client/cache/InputLimit.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.client.cache;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * Used to limiting the size of an incoming response body of
+@@ -34,7 +33,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ * of caching it.
+ * @since 4.1
+ */
+-@NotThreadSafe // reached
+ public class InputLimit {
+
+ private final long value;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheStorage.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheStorage.java
+index 76a525c..aee424c 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheStorage.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheStorage.java
+@@ -28,7 +28,6 @@ package org.apache.http.impl.client.cache;
+
+ import java.io.IOException;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.cache.HttpCacheStorage;
+ import org.apache.http.client.cache.HttpCacheUpdateCallback;
+@@ -43,7 +42,6 @@ import org.apache.http.client.cache.HttpCacheUpdateCallback;
+ *
+ * @since 4.1
+ */
+-@ThreadSafe
+ public class BasicHttpCacheStorage implements HttpCacheStorage {
+
+ private final CacheMap entries;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicIdGenerator.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicIdGenerator.java
+index 04236ab..84596ec 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicIdGenerator.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicIdGenerator.java
+@@ -33,19 +33,15 @@ import java.security.SecureRandom;
+ import java.util.Formatter;
+ import java.util.Locale;
+
+-import org.apache.http.annotation.GuardedBy;
+-import org.apache.http.annotation.ThreadSafe;
+
+ /**
+ * Should produce reasonably unique tokens.
+ */
+-@ThreadSafe
+ class BasicIdGenerator {
+
+ private final String hostname;
+ private final SecureRandom rnd;
+
+- @GuardedBy("this")
+ private long count;
+
+ public BasicIdGenerator() {
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntity.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntity.java
+index 66e4af7..5794dca 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntity.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntity.java
+@@ -33,12 +33,10 @@ import java.io.Serializable;
+
+ import org.apache.http.Header;
+ import org.apache.http.HttpEntity;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.protocol.HTTP;
+ import org.apache.http.util.Args;
+
+-@Immutable
+ class CacheEntity implements HttpEntity, Serializable {
+
+ private static final long serialVersionUID = -3467082284120936233L;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java
+index 4801b9d..fb9eff2 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java
+@@ -36,7 +36,6 @@ import java.util.ListIterator;
+ import org.apache.http.Header;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.cache.Resource;
+@@ -52,7 +51,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ class CacheEntryUpdater {
+
+ private final ResourceFactory resourceFactory;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheInvalidator.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheInvalidator.java
+index 57c2d91..5d4b47a 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheInvalidator.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheInvalidator.java
+@@ -37,7 +37,6 @@ import org.apache.http.Header;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.cache.HttpCacheInvalidator;
+@@ -51,7 +50,6 @@ import org.apache.http.protocol.HTTP;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ class CacheInvalidator implements HttpCacheInvalidator {
+
+ private final HttpCacheStorage storage;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheKeyGenerator.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheKeyGenerator.java
+index 3d006d5..f786608 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheKeyGenerator.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheKeyGenerator.java
+@@ -40,7 +40,6 @@ import org.apache.http.Header;
+ import org.apache.http.HeaderElement;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.utils.URIUtils;
+@@ -48,7 +47,6 @@ import org.apache.http.client.utils.URIUtils;
+ /**
+ * @since 4.1
+ */
+-@Immutable
+ class CacheKeyGenerator {
+
+ private static final URI BASE_URI = URI.create("http://example.com/");
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheValidityPolicy.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheValidityPolicy.java
+index 7690e8a..7c31047 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheValidityPolicy.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheValidityPolicy.java
+@@ -31,7 +31,6 @@ import java.util.Date;
+ import org.apache.http.Header;
+ import org.apache.http.HeaderElement;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.utils.DateUtils;
+@@ -40,7 +39,6 @@ import org.apache.http.protocol.HTTP;
+ /**
+ * @since 4.1
+ */
+-@Immutable
+ class CacheValidityPolicy {
+
+ public static final long MAX_AGE = 2147483648L;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheableRequestPolicy.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheableRequestPolicy.java
+index d787703..3da01e6 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheableRequestPolicy.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheableRequestPolicy.java
+@@ -33,7 +33,6 @@ import org.apache.http.HeaderElement;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpVersion;
+ import org.apache.http.ProtocolVersion;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HeaderConstants;
+
+ /**
+@@ -41,7 +40,6 @@ import org.apache.http.client.cache.HeaderConstants;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ class CacheableRequestPolicy {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachedHttpResponseGenerator.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachedHttpResponseGenerator.java
+index f74a2e4..e32c8bb 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachedHttpResponseGenerator.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachedHttpResponseGenerator.java
+@@ -33,7 +33,6 @@ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+ import org.apache.http.HttpVersion;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.methods.CloseableHttpResponse;
+@@ -48,7 +47,6 @@ import org.apache.http.protocol.HTTP;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ class CachedHttpResponseGenerator {
+
+ private final CacheValidityPolicy validityStrategy;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachedResponseSuitabilityChecker.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachedResponseSuitabilityChecker.java
+index e7c940c..354c21d 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachedResponseSuitabilityChecker.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachedResponseSuitabilityChecker.java
+@@ -35,7 +35,6 @@ import org.apache.http.HeaderElement;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpStatus;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.utils.DateUtils;
+@@ -46,7 +45,6 @@ import org.apache.http.client.utils.DateUtils;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ class CachedResponseSuitabilityChecker {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java
+index d9c63dd..38b93b2 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java
+@@ -49,7 +49,6 @@ import org.apache.http.HttpVersion;
+ import org.apache.http.ProtocolException;
+ import org.apache.http.ProtocolVersion;
+ import org.apache.http.RequestLine;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.cache.CacheResponseStatus;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.cache.HttpCacheContext;
+@@ -99,7 +98,6 @@ import org.apache.http.util.VersionInfo;
+ *
+ * @since 4.3
+ */
+-@ThreadSafe // So long as the responseCache implementation is threadsafe
+ public class CachingExec implements ClientExecChain {
+
+ private final static boolean SUPPORTS_RANGE_AND_CONTENT_RANGE_HEADERS = false;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingHttpClients.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingHttpClients.java
+index 35beb6d..36c034b 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingHttpClients.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingHttpClients.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.client.cache;
+
+ import java.io.File;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.impl.client.CloseableHttpClient;
+
+ /**
+@@ -38,7 +37,6 @@ import org.apache.http.impl.client.CloseableHttpClient;
+ *
+ * @since 4.3
+ */
+-@Immutable
+ public class CachingHttpClients {
+
+ private CachingHttpClients() {
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CombinedEntity.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CombinedEntity.java
+index a4cd65c..c665339 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CombinedEntity.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CombinedEntity.java
+@@ -32,12 +32,10 @@ import java.io.InputStream;
+ import java.io.OutputStream;
+ import java.io.SequenceInputStream;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.cache.Resource;
+ import org.apache.http.entity.AbstractHttpEntity;
+ import org.apache.http.util.Args;
+
+-@NotThreadSafe
+ class CombinedEntity extends AbstractHttpEntity {
+
+ private final Resource resource;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ConditionalRequestBuilder.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ConditionalRequestBuilder.java
+index 0f4bd09..6512d6f 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ConditionalRequestBuilder.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ConditionalRequestBuilder.java
+@@ -31,7 +31,6 @@ import java.util.Map;
+ import org.apache.http.Header;
+ import org.apache.http.HeaderElement;
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.methods.HttpRequestWrapper;
+@@ -39,7 +38,6 @@ import org.apache.http.client.methods.HttpRequestWrapper;
+ /**
+ * @since 4.1
+ */
+-@Immutable
+ class ConditionalRequestBuilder {
+
+ /**
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/DefaultFailureCache.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/DefaultFailureCache.java
+index c0626fa..e835265 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/DefaultFailureCache.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/DefaultFailureCache.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.client.cache;
+
+-import org.apache.http.annotation.ThreadSafe;
+
+ import java.util.Map;
+ import java.util.concurrent.ConcurrentHashMap;
+@@ -38,7 +37,6 @@ import java.util.concurrent.ConcurrentMap;
+ *
+ * @since 4.3
+ */
+-@ThreadSafe
+ public class DefaultFailureCache implements FailureCache {
+
+ static final int DEFAULT_MAX_SIZE = 1000;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/DefaultHttpCacheEntrySerializer.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/DefaultHttpCacheEntrySerializer.java
+index f84501b..b450521 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/DefaultHttpCacheEntrySerializer.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/DefaultHttpCacheEntrySerializer.java
+@@ -32,7 +32,6 @@ import java.io.ObjectInputStream;
+ import java.io.ObjectOutputStream;
+ import java.io.OutputStream;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.cache.HttpCacheEntrySerializationException;
+ import org.apache.http.client.cache.HttpCacheEntrySerializer;
+@@ -45,7 +44,6 @@ import org.apache.http.client.cache.HttpCacheEntrySerializer;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ public class DefaultHttpCacheEntrySerializer implements HttpCacheEntrySerializer {
+
+ @Override
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ExponentialBackOffSchedulingStrategy.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ExponentialBackOffSchedulingStrategy.java
+index 21b644f..b4541fe 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ExponentialBackOffSchedulingStrategy.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ExponentialBackOffSchedulingStrategy.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.client.cache;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.util.Args;
+
+ import java.util.concurrent.ScheduledExecutorService;
+@@ -56,7 +55,6 @@ import java.util.concurrent.TimeUnit;
+ *
+ * @since 4.3
+ */
+-@ThreadSafe
+ public class ExponentialBackOffSchedulingStrategy implements SchedulingStrategy {
+
+ public static final long DEFAULT_BACK_OFF_RATE = 10;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FailureCacheValue.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FailureCacheValue.java
+index 98137ae..179a478 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FailureCacheValue.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FailureCacheValue.java
+@@ -26,14 +26,12 @@
+ */
+ package org.apache.http.impl.client.cache;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * The error count with a creation timestamp and its associated key.
+ *
+ * @since 4.3
+ */
+-@Immutable
+ public class FailureCacheValue {
+
+ private final long creationTimeInNanos;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FileResource.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FileResource.java
+index eef9c9a..d7561d0 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FileResource.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FileResource.java
+@@ -31,7 +31,6 @@ import java.io.FileInputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.cache.Resource;
+
+ /**
+@@ -39,7 +38,6 @@ import org.apache.http.client.cache.Resource;
+ *
+ * @since 4.1
+ */
+-@ThreadSafe
+ public class FileResource implements Resource {
+
+ private static final long serialVersionUID = 4132244415919043397L;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FileResourceFactory.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FileResourceFactory.java
+index f2c717c..cb9ef55 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FileResourceFactory.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/FileResourceFactory.java
+@@ -31,7 +31,6 @@ import java.io.FileOutputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.InputLimit;
+ import org.apache.http.client.cache.Resource;
+ import org.apache.http.client.cache.ResourceFactory;
+@@ -41,7 +40,6 @@ import org.apache.http.client.cache.ResourceFactory;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ public class FileResourceFactory implements ResourceFactory {
+
+ private final File cacheDir;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/HeapResource.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/HeapResource.java
+index edf6b0f..955e41b 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/HeapResource.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/HeapResource.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.client.cache;
+ import java.io.ByteArrayInputStream;
+ import java.io.InputStream;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.Resource;
+
+ /**
+@@ -37,7 +36,6 @@ import org.apache.http.client.cache.Resource;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ public class HeapResource implements Resource {
+
+ private static final long serialVersionUID = -2078599905620463394L;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/HeapResourceFactory.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/HeapResourceFactory.java
+index 87a1b2a..d561fd8 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/HeapResourceFactory.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/HeapResourceFactory.java
+@@ -30,7 +30,6 @@ import java.io.ByteArrayOutputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.InputLimit;
+ import org.apache.http.client.cache.Resource;
+ import org.apache.http.client.cache.ResourceFactory;
+@@ -40,7 +39,6 @@ import org.apache.http.client.cache.ResourceFactory;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ public class HeapResourceFactory implements ResourceFactory {
+
+ @Override
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/IOUtils.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/IOUtils.java
+index b255d0f..229bce6 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/IOUtils.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/IOUtils.java
+@@ -35,9 +35,7 @@ import java.io.RandomAccessFile;
+ import java.nio.channels.FileChannel;
+
+ import org.apache.http.HttpEntity;
+-import org.apache.http.annotation.Immutable;
+
+-@Immutable
+ class IOUtils {
+
+ static void consume(final HttpEntity entity) throws IOException {
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ImmediateSchedulingStrategy.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ImmediateSchedulingStrategy.java
+index 263c6b3..00564f6 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ImmediateSchedulingStrategy.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ImmediateSchedulingStrategy.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.client.cache;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.util.Args;
+
+ import java.util.concurrent.ArrayBlockingQueue;
+@@ -40,7 +39,6 @@ import java.util.concurrent.TimeUnit;
+ *
+ * @since 4.3
+ */
+-@ThreadSafe
+ public class ImmediateSchedulingStrategy implements SchedulingStrategy {
+
+ private final ExecutorService executor;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ManagedHttpCacheStorage.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ManagedHttpCacheStorage.java
+index 0a02658..4ac6a51 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ManagedHttpCacheStorage.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ManagedHttpCacheStorage.java
+@@ -33,7 +33,6 @@ import java.util.HashSet;
+ import java.util.Set;
+ import java.util.concurrent.atomic.AtomicBoolean;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.cache.HttpCacheStorage;
+ import org.apache.http.client.cache.HttpCacheUpdateCallback;
+@@ -70,7 +69,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.1
+ */
+-@ThreadSafe
+ public class ManagedHttpCacheStorage implements HttpCacheStorage, Closeable {
+
+ private final CacheMap entries;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/OptionsHttp11Response.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/OptionsHttp11Response.java
+index 2245360..5f80dc1 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/OptionsHttp11Response.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/OptionsHttp11Response.java
+@@ -36,7 +36,6 @@ import org.apache.http.HttpStatus;
+ import org.apache.http.HttpVersion;
+ import org.apache.http.ProtocolVersion;
+ import org.apache.http.StatusLine;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.message.AbstractHttpMessage;
+ import org.apache.http.message.BasicStatusLine;
+ import org.apache.http.params.BasicHttpParams;
+@@ -46,7 +45,6 @@ import org.apache.http.params.HttpParams;
+ * @since 4.1
+ */
+ @SuppressWarnings("deprecation")
+-@Immutable
+ final class OptionsHttp11Response extends AbstractHttpMessage implements HttpResponse {
+
+ private final StatusLine statusLine = new BasicStatusLine(HttpVersion.HTTP_1_1,
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/Proxies.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/Proxies.java
+index c86a039..c17521b 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/Proxies.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/Proxies.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.client.cache;
+ import java.lang.reflect.Proxy;
+
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.methods.CloseableHttpResponse;
+ import org.apache.http.util.Args;
+
+@@ -38,7 +37,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.3
+ */
+-@NotThreadSafe
+ class Proxies {
+
+ public static CloseableHttpResponse enhanceResponse(final HttpResponse original) {
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/RequestProtocolCompliance.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/RequestProtocolCompliance.java
+index c74a607..7cfaa73 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/RequestProtocolCompliance.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/RequestProtocolCompliance.java
+@@ -38,7 +38,6 @@ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+ import org.apache.http.HttpVersion;
+ import org.apache.http.ProtocolVersion;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.ClientProtocolException;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.methods.HttpRequestWrapper;
+@@ -52,7 +51,6 @@ import org.apache.http.protocol.HTTP;
+ /**
+ * @since 4.1
+ */
+-@Immutable
+ class RequestProtocolCompliance {
+ private final boolean weakETagOnPutDeleteAllowed;
+
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResourceReference.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResourceReference.java
+index 4f9ac44..2d262f2 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResourceReference.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResourceReference.java
+@@ -29,12 +29,10 @@ package org.apache.http.impl.client.cache;
+ import java.lang.ref.PhantomReference;
+ import java.lang.ref.ReferenceQueue;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HttpCacheEntry;
+ import org.apache.http.client.cache.Resource;
+ import org.apache.http.util.Args;
+
+-@Immutable
+ class ResourceReference extends PhantomReference {
+
+ private final Resource resource;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseCachingPolicy.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseCachingPolicy.java
+index ae7a08b..179e43d 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseCachingPolicy.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseCachingPolicy.java
+@@ -40,7 +40,6 @@ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+ import org.apache.http.HttpVersion;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.utils.DateUtils;
+ import org.apache.http.protocol.HTTP;
+@@ -50,7 +49,6 @@ import org.apache.http.protocol.HTTP;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ class ResponseCachingPolicy {
+
+ private static final String[] AUTH_CACHEABLE_PARAMS = {
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseProtocolCompliance.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseProtocolCompliance.java
+index bde392d..aac418c 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseProtocolCompliance.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseProtocolCompliance.java
+@@ -39,7 +39,6 @@ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+ import org.apache.http.HttpVersion;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.ClientProtocolException;
+ import org.apache.http.client.cache.HeaderConstants;
+ import org.apache.http.client.methods.HttpRequestWrapper;
+@@ -50,7 +49,6 @@ import org.apache.http.protocol.HTTP;
+ /**
+ * @since 4.1
+ */
+-@Immutable
+ class ResponseProtocolCompliance {
+
+ private static final String UNEXPECTED_100_CONTINUE = "The incoming request did not contain a "
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseProxyHandler.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseProxyHandler.java
+index 26f3c9d..5b491c3 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseProxyHandler.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/ResponseProxyHandler.java
+@@ -34,7 +34,6 @@ import java.lang.reflect.InvocationTargetException;
+ import java.lang.reflect.Method;
+
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * A proxy class that can enhance an arbitrary {@link HttpResponse} with
+@@ -42,7 +41,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @since 4.3
+ */
+-@NotThreadSafe
+ class ResponseProxyHandler implements InvocationHandler {
+
+ private static final Method CLOSE_METHOD;
+diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/SizeLimitedResponseReader.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/SizeLimitedResponseReader.java
+index 4cb520a..f02e608 100644
+--- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/SizeLimitedResponseReader.java
++++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/SizeLimitedResponseReader.java
+@@ -33,7 +33,6 @@ import java.lang.reflect.Proxy;
+ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.cache.InputLimit;
+ import org.apache.http.client.cache.Resource;
+ import org.apache.http.client.cache.ResourceFactory;
+@@ -43,7 +42,6 @@ import org.apache.http.message.BasicHttpResponse;
+ /**
+ * @since 4.1
+ */
+-@NotThreadSafe
+ class SizeLimitedResponseReader {
+
+ private final ResourceFactory resourceFactory;
+diff --git a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/CurrentWindowsCredentials.java b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/CurrentWindowsCredentials.java
+index 8174992..81f13af 100644
+--- a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/CurrentWindowsCredentials.java
++++ b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/CurrentWindowsCredentials.java
+@@ -30,7 +30,6 @@ package org.apache.http.impl.auth.win;
+ import java.io.Serializable;
+ import java.security.Principal;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.Credentials;
+
+ import com.sun.jna.platform.win32.Secur32.EXTENDED_NAME_FORMAT;
+@@ -44,7 +43,6 @@ import com.sun.jna.platform.win32.Secur32Util;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public final class CurrentWindowsCredentials implements Credentials, Serializable, Principal {
+
+ private static final long serialVersionUID = 4361166468529298169L;
+diff --git a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsCredentialsProvider.java b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsCredentialsProvider.java
+index aae9e22..7093eaf 100644
+--- a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsCredentialsProvider.java
++++ b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsCredentialsProvider.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.auth.win;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.auth.AuthScope;
+ import org.apache.http.auth.Credentials;
+ import org.apache.http.client.CredentialsProvider;
+@@ -43,7 +42,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.4
+ */
+-@ThreadSafe
+ public class WindowsCredentialsProvider implements CredentialsProvider {
+
+ private final CredentialsProvider provider;
+diff --git a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNTLMSchemeFactory.java b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNTLMSchemeFactory.java
+index 21bed64..47f7f63 100644
+--- a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNTLMSchemeFactory.java
++++ b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNTLMSchemeFactory.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.auth.win;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthSchemeProvider;
+ import org.apache.http.client.config.AuthSchemes;
+@@ -42,7 +41,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public class WindowsNTLMSchemeFactory implements AuthSchemeProvider {
+
+ private final String servicePrincipalName;
+diff --git a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNegotiateScheme.java b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNegotiateScheme.java
+index 3b0223f..7e8b866 100644
+--- a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNegotiateScheme.java
++++ b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNegotiateScheme.java
+@@ -32,7 +32,6 @@ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.Header;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.AuthenticationException;
+ import org.apache.http.auth.Credentials;
+@@ -67,7 +66,6 @@ import com.sun.jna.ptr.IntByReference;
+ *
+ * @since 4.4
+ */
+-@NotThreadSafe
+ public class WindowsNegotiateScheme extends AuthSchemeBase {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNegotiateSchemeFactory.java b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNegotiateSchemeFactory.java
+index 29e5ffd..70e38bc 100644
+--- a/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNegotiateSchemeFactory.java
++++ b/httpclient-win/src/main/java/org/apache/http/impl/auth/win/WindowsNegotiateSchemeFactory.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.auth.win;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthSchemeProvider;
+ import org.apache.http.client.config.AuthSchemes;
+@@ -42,7 +41,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public class WindowsNegotiateSchemeFactory implements AuthSchemeProvider {
+
+ private final String servicePrincipalName;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/auth/params/AuthParams.java b/httpclient/src/main/java-deprecated/org/apache/http/auth/params/AuthParams.java
+index a7de770..5e1d3ce 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/auth/params/AuthParams.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/auth/params/AuthParams.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.auth.params;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.params.HttpParams;
+ import org.apache.http.protocol.HTTP;
+ import org.apache.http.util.Args;
+@@ -42,7 +41,6 @@ import org.apache.http.util.Args;
+ * and constructor parameters of
+ * {@link org.apache.http.auth.AuthSchemeProvider}s.
+ */
+-@Immutable
+ @Deprecated
+ public final class AuthParams {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/params/AuthPolicy.java b/httpclient/src/main/java-deprecated/org/apache/http/client/params/AuthPolicy.java
+index 768ddf9..f60c601 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/params/AuthPolicy.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/params/AuthPolicy.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.client.params;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Standard authentication schemes supported by HttpClient.
+@@ -37,7 +36,6 @@ import org.apache.http.annotation.Immutable;
+ * @deprecated (4.3) use {@link org.apache.http.client.config.AuthSchemes}.
+ */
+ @Deprecated
+-@Immutable
+ public final class AuthPolicy {
+
+ private AuthPolicy() {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/params/ClientParamBean.java b/httpclient/src/main/java-deprecated/org/apache/http/client/params/ClientParamBean.java
+index 99ba851..7a84c77 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/params/ClientParamBean.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/params/ClientParamBean.java
+@@ -31,7 +31,6 @@ import java.util.Collection;
+
+ import org.apache.http.Header;
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.params.HttpAbstractParamBean;
+ import org.apache.http.params.HttpParams;
+
+@@ -45,7 +44,6 @@ import org.apache.http.params.HttpParams;
+ * @deprecated (4.3) use {@link org.apache.http.client.config.RequestConfig}.
+ */
+ @Deprecated
+-@NotThreadSafe
+ public class ClientParamBean extends HttpAbstractParamBean {
+
+ public ClientParamBean (final HttpParams params) {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/params/CookiePolicy.java b/httpclient/src/main/java-deprecated/org/apache/http/client/params/CookiePolicy.java
+index e12ab42..dfa6b5a 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/params/CookiePolicy.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/params/CookiePolicy.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.client.params;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Standard cookie specifications supported by HttpClient.
+@@ -37,7 +36,6 @@ import org.apache.http.annotation.Immutable;
+ * @deprecated (4.3) use {@link org.apache.http.client.config.CookieSpecs}.
+ */
+ @Deprecated
+-@Immutable
+ public final class CookiePolicy {
+
+ /**
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/params/HttpClientParams.java b/httpclient/src/main/java-deprecated/org/apache/http/client/params/HttpClientParams.java
+index c27cb7f..50a12f9 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/params/HttpClientParams.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/params/HttpClientParams.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.client.params;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.params.HttpConnectionParams;
+ import org.apache.http.params.HttpParams;
+ import org.apache.http.util.Args;
+@@ -39,7 +38,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.3) use {@link org.apache.http.client.config.RequestConfig}
+ */
+ @Deprecated
+-@Immutable
+ public class HttpClientParams {
+
+ private HttpClientParams() {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/ClientContextConfigurer.java b/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/ClientContextConfigurer.java
+index 39645ec..6476a6b 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/ClientContextConfigurer.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/ClientContextConfigurer.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.client.protocol;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AuthSchemeRegistry;
+ import org.apache.http.client.CookieStore;
+ import org.apache.http.client.CredentialsProvider;
+@@ -42,7 +41,6 @@ import org.apache.http.util.Args;
+ *
+ * @deprecated (4.3) use {@link HttpClientContext}
+ */
+-@NotThreadSafe
+ @Deprecated
+ public class ClientContextConfigurer implements ClientContext {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/RequestProxyAuthentication.java b/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/RequestProxyAuthentication.java
+index b5ef5ad..7ccb9c5 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/RequestProxyAuthentication.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/RequestProxyAuthentication.java
+@@ -31,7 +31,6 @@ import java.io.IOException;
+
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.AuthState;
+ import org.apache.http.conn.HttpRoutedConnection;
+@@ -49,7 +48,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.3) use {@link org.apache.http.impl.auth.HttpAuthenticator}.
+ */
+ @Deprecated
+-@Immutable
+ public class RequestProxyAuthentication extends RequestAuthenticationBase {
+
+ public RequestProxyAuthentication() {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/RequestTargetAuthentication.java b/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/RequestTargetAuthentication.java
+index 263ff57..93c8a7b 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/RequestTargetAuthentication.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/RequestTargetAuthentication.java
+@@ -31,7 +31,6 @@ import java.io.IOException;
+
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.AuthState;
+ import org.apache.http.protocol.HttpContext;
+@@ -46,7 +45,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.3) use {@link org.apache.http.impl.auth.HttpAuthenticator}.
+ */
+ @Deprecated
+-@Immutable
+ public class RequestTargetAuthentication extends RequestAuthenticationBase {
+
+ public RequestTargetAuthentication() {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/ResponseAuthCache.java b/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/ResponseAuthCache.java
+index 23322e8..8b4b591 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/ResponseAuthCache.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/protocol/ResponseAuthCache.java
+@@ -35,7 +35,6 @@ import org.apache.http.HttpException;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpResponseInterceptor;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthState;
+ import org.apache.http.client.AuthCache;
+@@ -57,7 +56,6 @@ import org.apache.http.util.Args;
+ *
+ * @deprecated (4.2) use {@link org.apache.http.client.AuthenticationStrategy}
+ */
+-@Immutable
+ @Deprecated
+ public class ResponseAuthCache implements HttpResponseInterceptor {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/utils/JdkIdn.java b/httpclient/src/main/java-deprecated/org/apache/http/client/utils/JdkIdn.java
+index 99898b8..93ff1a2 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/utils/JdkIdn.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/utils/JdkIdn.java
+@@ -29,7 +29,6 @@ package org.apache.http.client.utils;
+ import java.lang.reflect.InvocationTargetException;
+ import java.lang.reflect.Method;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Uses the java.net.IDN class through reflection.
+@@ -38,7 +37,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @Deprecated
+ public class JdkIdn implements Idn {
+ private final Method toUnicode;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/utils/Punycode.java b/httpclient/src/main/java-deprecated/org/apache/http/client/utils/Punycode.java
+index 2d17f34..9978973 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/utils/Punycode.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/utils/Punycode.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.client.utils;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Facade that provides conversion between Unicode and Punycode domain names.
+@@ -36,7 +35,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @Deprecated
+ public class Punycode {
+ private static final Idn impl;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/client/utils/Rfc3492Idn.java b/httpclient/src/main/java-deprecated/org/apache/http/client/utils/Rfc3492Idn.java
+index 29dabc4..e9daa5d 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/client/utils/Rfc3492Idn.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/client/utils/Rfc3492Idn.java
+@@ -28,7 +28,6 @@ package org.apache.http.client.utils;
+
+ import java.util.StringTokenizer;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Implementation from pseudo code in RFC 3492.
+@@ -37,7 +36,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @Deprecated
+ public class Rfc3492Idn implements Idn {
+ private static final int base = 36;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/BasicEofSensorWatcher.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/BasicEofSensorWatcher.java
+index 9fa2c33..6b64f37 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/BasicEofSensorWatcher.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/BasicEofSensorWatcher.java
+@@ -29,7 +29,6 @@ package org.apache.http.conn;
+ import java.io.IOException;
+ import java.io.InputStream;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -41,7 +40,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.3) do not use.
+ */
+ @Deprecated
+-@NotThreadSafe
+ public class BasicEofSensorWatcher implements EofSensorWatcher {
+
+ /** The connection to auto-release. */
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/BasicManagedEntity.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/BasicManagedEntity.java
+index 24dca91..93765e7 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/BasicManagedEntity.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/BasicManagedEntity.java
+@@ -32,7 +32,6 @@ import java.io.OutputStream;
+ import java.net.SocketException;
+
+ import org.apache.http.HttpEntity;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.entity.HttpEntityWrapper;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.EntityUtils;
+@@ -48,7 +47,6 @@ import org.apache.http.util.EntityUtils;
+ * @deprecated (4.3) do not use.
+ */
+ @Deprecated
+-@NotThreadSafe
+ public class BasicManagedEntity extends HttpEntityWrapper
+ implements ConnectionReleaseTrigger, EofSensorWatcher {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/MultihomePlainSocketFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/MultihomePlainSocketFactory.java
+index 7ce6e05..c144fe2 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/MultihomePlainSocketFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/MultihomePlainSocketFactory.java
+@@ -37,7 +37,6 @@ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.List;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.scheme.SocketFactory;
+ import org.apache.http.params.HttpConnectionParams;
+ import org.apache.http.params.HttpParams;
+@@ -57,7 +56,6 @@ import org.apache.http.util.Asserts;
+ * {@link org.apache.http.conn.scheme.SchemeSocketFactory} interface.
+ */
+ @Deprecated
+-@Immutable
+ public final class MultihomePlainSocketFactory implements SocketFactory {
+
+ /**
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnManagerParamBean.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnManagerParamBean.java
+index 2dd56a0..d05d461 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnManagerParamBean.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnManagerParamBean.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.conn.params;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.params.HttpAbstractParamBean;
+ import org.apache.http.params.HttpParams;
+
+@@ -40,7 +39,6 @@ import org.apache.http.params.HttpParams;
+ *
+ * @deprecated (4.1) use configuration methods of the specific connection manager implementation.
+ */
+-@NotThreadSafe
+ @Deprecated
+ public class ConnManagerParamBean extends HttpAbstractParamBean {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnManagerParams.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnManagerParams.java
+index 3c4ddfb..a11f6e9 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnManagerParams.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnManagerParams.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.conn.params;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.routing.HttpRoute;
+ import org.apache.http.params.HttpParams;
+ import org.apache.http.util.Args;
+@@ -42,7 +41,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.1) use configuration methods of the specific connection manager implementation.
+ */
+ @Deprecated
+-@Immutable
+ public final class ConnManagerParams implements ConnManagerPNames {
+
+ /** The default maximum number of connections allowed overall */
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnPerRouteBean.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnPerRouteBean.java
+index 241424f..069ca20 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnPerRouteBean.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnPerRouteBean.java
+@@ -29,7 +29,6 @@ package org.apache.http.conn.params;
+ import java.util.Map;
+ import java.util.concurrent.ConcurrentHashMap;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.routing.HttpRoute;
+ import org.apache.http.util.Args;
+
+@@ -44,7 +43,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.2) use {@link org.apache.http.pool.ConnPoolControl}
+ */
+ @Deprecated
+-@ThreadSafe
+ public final class ConnPerRouteBean implements ConnPerRoute {
+
+ /** The default maximum number of connections allowed per host */
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnRouteParamBean.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnRouteParamBean.java
+index f574c71..e75c8c4 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnRouteParamBean.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnRouteParamBean.java
+@@ -30,7 +30,6 @@ package org.apache.http.conn.params;
+ import java.net.InetAddress;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.conn.routing.HttpRoute;
+ import org.apache.http.params.HttpAbstractParamBean;
+ import org.apache.http.params.HttpParams;
+@@ -45,7 +44,6 @@ import org.apache.http.params.HttpParams;
+ * @deprecated (4.3) use {@link org.apache.http.client.config.RequestConfig}.
+ */
+ @Deprecated
+-@NotThreadSafe
+ public class ConnRouteParamBean extends HttpAbstractParamBean {
+
+ public ConnRouteParamBean (final HttpParams params) {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnRouteParams.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnRouteParams.java
+index c4a9bc1..060617a 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnRouteParams.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/params/ConnRouteParams.java
+@@ -29,7 +29,6 @@ package org.apache.http.conn.params;
+ import java.net.InetAddress;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.routing.HttpRoute;
+ import org.apache.http.params.HttpParams;
+ import org.apache.http.util.Args;
+@@ -43,7 +42,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.3) use {@link org.apache.http.client.config.RequestConfig}.
+ */
+ @Deprecated
+-@Immutable
+ public class ConnRouteParams implements ConnRoutePNames {
+
+ /**
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/scheme/PlainSocketFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/scheme/PlainSocketFactory.java
+index a6973b1..4590874 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/scheme/PlainSocketFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/scheme/PlainSocketFactory.java
+@@ -34,7 +34,6 @@ import java.net.Socket;
+ import java.net.SocketTimeoutException;
+ import java.net.UnknownHostException;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.ConnectTimeoutException;
+ import org.apache.http.params.HttpConnectionParams;
+ import org.apache.http.params.HttpParams;
+@@ -47,7 +46,6 @@ import org.apache.http.util.Args;
+ *
+ * @deprecated (4.3) use {@link org.apache.http.conn.socket.PlainConnectionSocketFactory}
+ */
+-@Immutable
+ @Deprecated
+ public class PlainSocketFactory implements SocketFactory, SchemeSocketFactory {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLContextBuilder.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLContextBuilder.java
+index c54db0c..d42f9cd 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLContextBuilder.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLContextBuilder.java
+@@ -51,7 +51,6 @@ import javax.net.ssl.TrustManagerFactory;
+ import javax.net.ssl.X509KeyManager;
+ import javax.net.ssl.X509TrustManager;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * Builder for {@link SSLContext} instances.
+@@ -60,7 +59,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @deprecated (4.4) use {@link org.apache.http.ssl.SSLContextBuilder}.
+ */
+-@NotThreadSafe
+ @Deprecated
+ public class SSLContextBuilder {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLContexts.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLContexts.java
+index 26ab3e5..efeaba7 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLContexts.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLContexts.java
+@@ -32,7 +32,6 @@ import java.security.NoSuchAlgorithmException;
+
+ import javax.net.ssl.SSLContext;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * {@link SSLContext} factory methods.
+@@ -41,7 +40,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @deprecated (4.4) use {@link org.apache.http.ssl.SSLContexts}.
+ */
+-@Immutable
+ @Deprecated
+ public class SSLContexts {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLSocketFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLSocketFactory.java
+index 37f539c..28c6a44 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLSocketFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/conn/ssl/SSLSocketFactory.java
+@@ -43,7 +43,6 @@ import javax.net.ssl.SSLContext;
+ import javax.net.ssl.SSLSocket;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.ConnectTimeoutException;
+ import org.apache.http.conn.HttpInetSocketAddress;
+ import org.apache.http.conn.scheme.HostNameResolver;
+@@ -139,7 +138,6 @@ import org.apache.http.util.TextUtils;
+ *
+ * @deprecated (4.3) use {@link SSLConnectionSocketFactory}.
+ */
+-@ThreadSafe
+ @Deprecated
+ public class SSLSocketFactory implements LayeredConnectionSocketFactory, SchemeLayeredSocketFactory,
+ LayeredSchemeSocketFactory, LayeredSocketFactory {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/cookie/params/CookieSpecParamBean.java b/httpclient/src/main/java-deprecated/org/apache/http/cookie/params/CookieSpecParamBean.java
+index ea6a929..917c054 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/cookie/params/CookieSpecParamBean.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/cookie/params/CookieSpecParamBean.java
+@@ -29,7 +29,6 @@ package org.apache.http.cookie.params;
+
+ import java.util.Collection;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.params.HttpAbstractParamBean;
+ import org.apache.http.params.HttpParams;
+
+@@ -44,7 +43,6 @@ import org.apache.http.params.HttpParams;
+ * org.apache.http.cookie.CookieSpecProvider}s.
+ */
+ @Deprecated
+-@NotThreadSafe
+ public class CookieSpecParamBean extends HttpAbstractParamBean {
+
+ public CookieSpecParamBean (final HttpParams params) {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AbstractAuthenticationHandler.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AbstractAuthenticationHandler.java
+index c3af00d..6318697 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AbstractAuthenticationHandler.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AbstractAuthenticationHandler.java
+@@ -40,7 +40,6 @@ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.FormattedHeader;
+ import org.apache.http.Header;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthSchemeRegistry;
+ import org.apache.http.auth.AuthenticationException;
+@@ -61,7 +60,6 @@ import org.apache.http.util.CharArrayBuffer;
+ * @deprecated (4.2) use {@link org.apache.http.client.AuthenticationStrategy}
+ */
+ @Deprecated
+-@Immutable
+ public abstract class AbstractAuthenticationHandler implements AuthenticationHandler {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AbstractHttpClient.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AbstractHttpClient.java
+index 18a42d7..46d2fd0 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AbstractHttpClient.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AbstractHttpClient.java
+@@ -38,8 +38,6 @@ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpRequestInterceptor;
+ import org.apache.http.HttpResponseInterceptor;
+-import org.apache.http.annotation.GuardedBy;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.auth.AuthSchemeRegistry;
+ import org.apache.http.client.AuthenticationHandler;
+ import org.apache.http.client.AuthenticationStrategy;
+@@ -194,85 +192,65 @@ import org.apache.http.util.Args;
+ *
+ * @deprecated (4.3) use {@link HttpClientBuilder}.
+ */
+-@ThreadSafe
+ @Deprecated
+ public abstract class AbstractHttpClient extends CloseableHttpClient {
+
+ private final Log log = LogFactory.getLog(getClass());
+
+ /** The parameters. */
+- @GuardedBy("this")
+ private HttpParams defaultParams;
+
+ /** The request executor. */
+- @GuardedBy("this")
+ private HttpRequestExecutor requestExec;
+
+ /** The connection manager. */
+- @GuardedBy("this")
+ private ClientConnectionManager connManager;
+
+ /** The connection re-use strategy. */
+- @GuardedBy("this")
+ private ConnectionReuseStrategy reuseStrategy;
+
+ /** The connection keep-alive strategy. */
+- @GuardedBy("this")
+ private ConnectionKeepAliveStrategy keepAliveStrategy;
+
+ /** The cookie spec registry. */
+- @GuardedBy("this")
+ private CookieSpecRegistry supportedCookieSpecs;
+
+ /** The authentication scheme registry. */
+- @GuardedBy("this")
+ private AuthSchemeRegistry supportedAuthSchemes;
+
+ /** The HTTP protocol processor and its immutable copy. */
+- @GuardedBy("this")
+ private BasicHttpProcessor mutableProcessor;
+
+- @GuardedBy("this")
+ private ImmutableHttpProcessor protocolProcessor;
+
+ /** The request retry handler. */
+- @GuardedBy("this")
+ private HttpRequestRetryHandler retryHandler;
+
+ /** The redirect handler. */
+- @GuardedBy("this")
+ private RedirectStrategy redirectStrategy;
+
+ /** The target authentication handler. */
+- @GuardedBy("this")
+ private AuthenticationStrategy targetAuthStrategy;
+
+ /** The proxy authentication handler. */
+- @GuardedBy("this")
+ private AuthenticationStrategy proxyAuthStrategy;
+
+ /** The cookie store. */
+- @GuardedBy("this")
+ private CookieStore cookieStore;
+
+ /** The credentials provider. */
+- @GuardedBy("this")
+ private CredentialsProvider credsProvider;
+
+ /** The route planner. */
+- @GuardedBy("this")
+ private HttpRoutePlanner routePlanner;
+
+ /** The user token handler. */
+- @GuardedBy("this")
+ private UserTokenHandler userTokenHandler;
+
+ /** The connection backoff strategy. */
+- @GuardedBy("this")
+ private ConnectionBackoffStrategy connectionBackoffStrategy;
+
+ /** The backoff manager. */
+- @GuardedBy("this")
+ private BackoffManager backoffManager;
+
+ /**
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AuthenticationStrategyAdaptor.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AuthenticationStrategyAdaptor.java
+index 2ff4ccf..0c6ff17 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AuthenticationStrategyAdaptor.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AuthenticationStrategyAdaptor.java
+@@ -37,7 +37,6 @@ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.Header;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthOption;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthScope;
+@@ -56,7 +55,6 @@ import org.apache.http.util.Args;
+ /**
+ * @deprecated (4.2) do not use
+ */
+-@Immutable
+ @Deprecated
+ class AuthenticationStrategyAdaptor implements AuthenticationStrategy {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AutoRetryHttpClient.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AutoRetryHttpClient.java
+index 272872a..3e2bf60 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AutoRetryHttpClient.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/AutoRetryHttpClient.java
+@@ -36,7 +36,6 @@ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.HttpClient;
+ import org.apache.http.client.ResponseHandler;
+ import org.apache.http.client.ServiceUnavailableRetryStrategy;
+@@ -56,7 +55,6 @@ import org.apache.http.util.EntityUtils;
+ * @deprecated (4.3) use {@link HttpClientBuilder}.
+ */
+ @Deprecated
+-@ThreadSafe
+ public class AutoRetryHttpClient implements HttpClient {
+
+ private final HttpClient backend;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/ClientParamsStack.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/ClientParamsStack.java
+index 65f80d2..ea57a78 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/ClientParamsStack.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/ClientParamsStack.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.client;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.params.AbstractHttpParams;
+ import org.apache.http.params.HttpParams;
+ import org.apache.http.util.Args;
+@@ -69,7 +68,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.3) use configuration classes provided 'org.apache.http.config'
+ * and 'org.apache.http.client.config'
+ */
+-@NotThreadSafe
+ @Deprecated
+ public class ClientParamsStack extends AbstractHttpParams {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/CloseableHttpResponseProxy.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/CloseableHttpResponseProxy.java
+index aa3fcec..649d359 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/CloseableHttpResponseProxy.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/CloseableHttpResponseProxy.java
+@@ -36,7 +36,6 @@ import java.lang.reflect.Proxy;
+
+ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.methods.CloseableHttpResponse;
+ import org.apache.http.util.EntityUtils;
+
+@@ -44,7 +43,6 @@ import org.apache.http.util.EntityUtils;
+ * @since 4.3
+ */
+ @Deprecated
+-@NotThreadSafe
+ class CloseableHttpResponseProxy implements InvocationHandler {
+
+ private final static Constructor> CONSTRUCTOR;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/ContentEncodingHttpClient.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/ContentEncodingHttpClient.java
+index 4f1bd33..b1b3497 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/ContentEncodingHttpClient.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/ContentEncodingHttpClient.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.client;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.protocol.RequestAcceptEncoding;
+ import org.apache.http.client.protocol.ResponseContentEncoding;
+ import org.apache.http.conn.ClientConnectionManager;
+@@ -50,7 +49,6 @@ import org.apache.http.protocol.BasicHttpProcessor;
+ * @deprecated (4.2) use {@link HttpClientBuilder}
+ */
+ @Deprecated
+-@ThreadSafe // since DefaultHttpClient is
+ public class ContentEncodingHttpClient extends DefaultHttpClient {
+
+ /**
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultHttpClient.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultHttpClient.java
+index e64b008..feab3ea 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultHttpClient.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultHttpClient.java
+@@ -28,7 +28,6 @@
+ package org.apache.http.impl.client;
+
+ import org.apache.http.HttpVersion;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.protocol.RequestAddCookies;
+ import org.apache.http.client.protocol.RequestAuthCache;
+ import org.apache.http.client.protocol.RequestClientConnControl;
+@@ -112,7 +111,6 @@ import org.apache.http.util.VersionInfo;
+ *
+ * @deprecated (4.3) use {@link HttpClientBuilder} see also {@link CloseableHttpClient}.
+ */
+-@ThreadSafe
+ @Deprecated
+ public class DefaultHttpClient extends AbstractHttpClient {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultProxyAuthenticationHandler.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultProxyAuthenticationHandler.java
+index 14ce013..b6ed8a5 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultProxyAuthenticationHandler.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultProxyAuthenticationHandler.java
+@@ -33,7 +33,6 @@ import java.util.Map;
+ import org.apache.http.Header;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.MalformedChallengeException;
+ import org.apache.http.auth.params.AuthPNames;
+@@ -49,7 +48,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.2) use {@link ProxyAuthenticationStrategy}
+ */
+ @Deprecated
+-@Immutable
+ public class DefaultProxyAuthenticationHandler extends AbstractAuthenticationHandler {
+
+ public DefaultProxyAuthenticationHandler() {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRedirectHandler.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRedirectHandler.java
+index 228b690..32de2d3 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRedirectHandler.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRedirectHandler.java
+@@ -38,7 +38,6 @@ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.CircularRedirectException;
+ import org.apache.http.client.RedirectHandler;
+ import org.apache.http.client.methods.HttpGet;
+@@ -58,7 +57,6 @@ import org.apache.http.util.Asserts;
+ *
+ * @deprecated (4.1) use {@link DefaultRedirectStrategy}.
+ */
+-@Immutable
+ @Deprecated
+ public class DefaultRedirectHandler implements RedirectHandler {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
+index d87090f..56ddc1b 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
+@@ -32,7 +32,6 @@ import java.net.URI;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.RedirectHandler;
+ import org.apache.http.client.RedirectStrategy;
+ import org.apache.http.client.methods.HttpGet;
+@@ -43,7 +42,6 @@ import org.apache.http.protocol.HttpContext;
+ /**
+ * @deprecated (4.1) do not use
+ */
+-@Immutable
+ @Deprecated
+ class DefaultRedirectStrategyAdaptor implements RedirectStrategy {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java
+index ed233b2..45cb998 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java
+@@ -45,7 +45,6 @@ import org.apache.http.HttpResponse;
+ import org.apache.http.NoHttpResponseException;
+ import org.apache.http.ProtocolException;
+ import org.apache.http.ProtocolVersion;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AuthProtocolState;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthState;
+@@ -132,7 +131,6 @@ import org.apache.http.util.EntityUtils;
+ * @deprecated (4.3)
+ */
+ @Deprecated
+-@NotThreadSafe // e.g. managedConn
+ public class DefaultRequestDirector implements RequestDirector {
+
+ private final Log log;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultTargetAuthenticationHandler.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultTargetAuthenticationHandler.java
+index c47f9e0..3918047 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultTargetAuthenticationHandler.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultTargetAuthenticationHandler.java
+@@ -33,7 +33,6 @@ import java.util.Map;
+ import org.apache.http.Header;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.MalformedChallengeException;
+ import org.apache.http.auth.params.AuthPNames;
+@@ -49,7 +48,6 @@ import org.apache.http.util.Args;
+ * @deprecated (4.2) use {@link TargetAuthenticationStrategy}
+ */
+ @Deprecated
+-@Immutable
+ public class DefaultTargetAuthenticationHandler extends AbstractAuthenticationHandler {
+
+ public DefaultTargetAuthenticationHandler() {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/RoutedRequest.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/RoutedRequest.java
+index 43a0a80..65b59b4 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/RoutedRequest.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/RoutedRequest.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.client;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.conn.routing.HttpRoute;
+
+ /**
+@@ -38,7 +37,6 @@ import org.apache.http.conn.routing.HttpRoute;
+ * @deprecated (4.3) do not use.
+ */
+ @Deprecated
+-@NotThreadSafe // RequestWrapper is @NotThreadSafe
+ public class RoutedRequest {
+
+ protected final RequestWrapper request; // @NotThreadSafe
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/SystemDefaultHttpClient.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/SystemDefaultHttpClient.java
+index 0d3c581..0c876ab 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/SystemDefaultHttpClient.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/SystemDefaultHttpClient.java
+@@ -30,7 +30,6 @@ package org.apache.http.impl.client;
+ import java.net.ProxySelector;
+
+ import org.apache.http.ConnectionReuseStrategy;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.ClientConnectionManager;
+ import org.apache.http.conn.routing.HttpRoutePlanner;
+ import org.apache.http.impl.DefaultConnectionReuseStrategy;
+@@ -104,7 +103,6 @@ import org.apache.http.params.HttpParams;
+ *
+ * @deprecated (4.3) use {@link HttpClientBuilder}
+ */
+-@ThreadSafe
+ @Deprecated
+ public class SystemDefaultHttpClient extends DefaultHttpClient {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/TunnelRefusedException.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/TunnelRefusedException.java
+index 0a6f134..b1e634e 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/client/TunnelRefusedException.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/client/TunnelRefusedException.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.client;
+
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals that the tunnel request was rejected by the proxy host.
+@@ -39,7 +38,6 @@ import org.apache.http.annotation.Immutable;
+ * @deprecated (4.3) reserved for internal use.
+ */
+ @Deprecated
+-@Immutable
+ public class TunnelRefusedException extends HttpException {
+
+ private static final long serialVersionUID = -8646722842745617323L;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/AbstractClientConnAdapter.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/AbstractClientConnAdapter.java
+index 5a1827a..3f2a420 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/AbstractClientConnAdapter.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/AbstractClientConnAdapter.java
+@@ -40,7 +40,6 @@ import org.apache.http.HttpEntityEnclosingRequest;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.conn.ClientConnectionManager;
+ import org.apache.http.conn.ManagedClientConnection;
+ import org.apache.http.conn.OperatedClientConnection;
+@@ -70,7 +69,6 @@ import org.apache.http.protocol.HttpContext;
+ * @deprecated (4.2) do not use
+ */
+ @Deprecated
+-@NotThreadSafe
+ public abstract class AbstractClientConnAdapter implements ManagedClientConnection, HttpContext {
+
+ /**
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/BasicClientConnectionManager.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/BasicClientConnectionManager.java
+index 9e424a4..f8e4d99 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/BasicClientConnectionManager.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/BasicClientConnectionManager.java
+@@ -34,8 +34,6 @@ import java.util.concurrent.atomic.AtomicLong;
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.HttpClientConnection;
+-import org.apache.http.annotation.GuardedBy;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.ClientConnectionManager;
+ import org.apache.http.conn.ClientConnectionOperator;
+ import org.apache.http.conn.ClientConnectionRequest;
+@@ -66,7 +64,6 @@ import org.apache.http.util.Asserts;
+ *
+ * @deprecated (4.3) use {@link BasicHttpClientConnectionManager}.
+ */
+-@ThreadSafe
+ @Deprecated
+ public class BasicClientConnectionManager implements ClientConnectionManager {
+
+@@ -86,15 +83,12 @@ public class BasicClientConnectionManager implements ClientConnectionManager {
+ private final ClientConnectionOperator connOperator;
+
+ /** The one and only entry in this pool. */
+- @GuardedBy("this")
+ private HttpPoolEntry poolEntry;
+
+ /** The currently issued managed connection, if any. */
+- @GuardedBy("this")
+ private ManagedClientConnectionImpl conn;
+
+ /** Indicates whether this connection manager is shut down. */
+- @GuardedBy("this")
+ private volatile boolean shutdown;
+
+ /**
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultClientConnection.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultClientConnection.java
+index 5a29784..fcd31af 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultClientConnection.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultClientConnection.java
+@@ -44,7 +44,6 @@ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpResponseFactory;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.conn.OperatedClientConnection;
+ import org.apache.http.conn.ManagedHttpClientConnection;
+ import org.apache.http.impl.SocketHttpClientConnection;
+@@ -64,7 +63,6 @@ import org.apache.http.util.Args;
+ *
+ * @deprecated (4.3) use {@link ManagedHttpClientConnectionFactory}.
+ */
+-@NotThreadSafe // connSecure, targetHost
+ @Deprecated
+ public class DefaultClientConnection extends SocketHttpClientConnection
+ implements OperatedClientConnection, ManagedHttpClientConnection, HttpContext {
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultClientConnectionOperator.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
+index ee14079..3812567 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
+@@ -37,7 +37,6 @@ import java.net.UnknownHostException;
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.protocol.ClientContext;
+ import org.apache.http.conn.ClientConnectionOperator;
+ import org.apache.http.conn.ConnectTimeoutException;
+@@ -86,7 +85,6 @@ import org.apache.http.util.Asserts;
+ * @deprecated (4.3) use {@link PoolingHttpClientConnectionManager}.
+ */
+ @Deprecated
+-@ThreadSafe
+ public class DefaultClientConnectionOperator implements ClientConnectionOperator {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultHttpRoutePlanner.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultHttpRoutePlanner.java
+index 650c202..c15a5be 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultHttpRoutePlanner.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultHttpRoutePlanner.java
+@@ -33,7 +33,6 @@ import java.net.InetAddress;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.params.ConnRouteParams;
+ import org.apache.http.conn.routing.HttpRoute;
+ import org.apache.http.conn.routing.HttpRoutePlanner;
+@@ -61,7 +60,6 @@ import org.apache.http.util.Asserts;
+ *
+ * @deprecated (4.3) use {@link DefaultRoutePlanner}
+ */
+-@ThreadSafe
+ @Deprecated
+ public class DefaultHttpRoutePlanner implements HttpRoutePlanner {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultResponseParser.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultResponseParser.java
+index 456c295..5a4c4d1 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultResponseParser.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/DefaultResponseParser.java
+@@ -37,7 +37,6 @@ import org.apache.http.HttpResponseFactory;
+ import org.apache.http.NoHttpResponseException;
+ import org.apache.http.ProtocolException;
+ import org.apache.http.StatusLine;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.impl.io.AbstractMessageParser;
+ import org.apache.http.io.SessionInputBuffer;
+ import org.apache.http.message.LineParser;
+@@ -62,7 +61,6 @@ import org.apache.http.util.CharArrayBuffer;
+ * @deprecated (4.2) use {@link DefaultHttpResponseParser}
+ */
+ @Deprecated
+-@ThreadSafe // no public methods
+ public class DefaultResponseParser extends AbstractMessageParser {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/LoggingSessionInputBuffer.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/LoggingSessionInputBuffer.java
+index 4708306..b5af86a 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/LoggingSessionInputBuffer.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/LoggingSessionInputBuffer.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.conn;
+ import java.io.IOException;
+
+ import org.apache.http.Consts;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.io.EofSensor;
+ import org.apache.http.io.HttpTransportMetrics;
+ import org.apache.http.io.SessionInputBuffer;
+@@ -42,7 +41,6 @@ import org.apache.http.util.CharArrayBuffer;
+ *
+ * @deprecated (4.3) no longer used.
+ */
+-@Immutable
+ @Deprecated
+ public class LoggingSessionInputBuffer implements SessionInputBuffer, EofSensor {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/LoggingSessionOutputBuffer.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/LoggingSessionOutputBuffer.java
+index a4e9912..9348cba 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/LoggingSessionOutputBuffer.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/LoggingSessionOutputBuffer.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.conn;
+ import java.io.IOException;
+
+ import org.apache.http.Consts;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.io.HttpTransportMetrics;
+ import org.apache.http.io.SessionOutputBuffer;
+ import org.apache.http.util.CharArrayBuffer;
+@@ -39,7 +38,6 @@ import org.apache.http.util.CharArrayBuffer;
+ * @since 4.0
+ * @deprecated (4.3) no longer used.
+ */
+-@Immutable
+ @Deprecated
+ public class LoggingSessionOutputBuffer implements SessionOutputBuffer {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/ManagedClientConnectionImpl.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/ManagedClientConnectionImpl.java
+index 7b5b70f..dea2e11 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/ManagedClientConnectionImpl.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/ManagedClientConnectionImpl.java
+@@ -41,7 +41,6 @@ import org.apache.http.HttpException;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.conn.ClientConnectionManager;
+ import org.apache.http.conn.ClientConnectionOperator;
+ import org.apache.http.conn.ManagedClientConnection;
+@@ -59,7 +58,6 @@ import org.apache.http.util.Asserts;
+ * @deprecated (4.3) use {@link ManagedHttpClientConnectionFactory}.
+ */
+ @Deprecated
+-@NotThreadSafe
+ class ManagedClientConnectionImpl implements ManagedClientConnection {
+
+ private final ClientConnectionManager manager;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/PoolingClientConnectionManager.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/PoolingClientConnectionManager.java
+index a4e5f28..4bcd979 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/PoolingClientConnectionManager.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/PoolingClientConnectionManager.java
+@@ -34,7 +34,6 @@ import java.util.concurrent.TimeoutException;
+
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.ClientConnectionManager;
+ import org.apache.http.conn.ClientConnectionOperator;
+ import org.apache.http.conn.ClientConnectionRequest;
+@@ -69,7 +68,6 @@ import org.apache.http.util.Asserts;
+ * @deprecated (4.3) use {@link PoolingHttpClientConnectionManager}.
+ */
+ @Deprecated
+-@ThreadSafe
+ public class PoolingClientConnectionManager implements ClientConnectionManager, ConnPoolControl {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/ProxySelectorRoutePlanner.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/ProxySelectorRoutePlanner.java
+index 2fe96d1..20fbd42 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/ProxySelectorRoutePlanner.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/ProxySelectorRoutePlanner.java
+@@ -39,7 +39,6 @@ import java.util.List;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.conn.params.ConnRouteParams;
+ import org.apache.http.conn.routing.HttpRoute;
+ import org.apache.http.conn.routing.HttpRoutePlanner;
+@@ -71,7 +70,6 @@ import org.apache.http.util.Asserts;
+ *
+ * @deprecated (4.3) use {@link SystemDefaultRoutePlanner}
+ */
+-@NotThreadSafe // e.g [gs]etProxySelector()
+ @Deprecated
+ public class ProxySelectorRoutePlanner implements HttpRoutePlanner {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/SchemeRegistryFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/SchemeRegistryFactory.java
+index 06105dd..86ae0c2 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/SchemeRegistryFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/SchemeRegistryFactory.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.conn;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.scheme.PlainSocketFactory;
+ import org.apache.http.conn.scheme.Scheme;
+ import org.apache.http.conn.scheme.SchemeRegistry;
+@@ -37,7 +36,6 @@ import org.apache.http.conn.ssl.SSLSocketFactory;
+ *
+ * @deprecated (4.3) use {@link org.apache.http.impl.client.HttpClientBuilder}.
+ */
+-@ThreadSafe
+ @Deprecated
+ public final class SchemeRegistryFactory {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/SingleClientConnManager.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/SingleClientConnManager.java
+index 774cf4a..5ecb6f5 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/SingleClientConnManager.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/SingleClientConnManager.java
+@@ -32,8 +32,6 @@ import java.util.concurrent.TimeUnit;
+
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+-import org.apache.http.annotation.GuardedBy;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.ClientConnectionManager;
+ import org.apache.http.conn.ClientConnectionOperator;
+ import org.apache.http.conn.ClientConnectionRequest;
+@@ -61,7 +59,6 @@ import org.apache.http.util.Asserts;
+ *
+ * @deprecated (4.2) use {@link BasicClientConnectionManager}
+ */
+-@ThreadSafe
+ @Deprecated
+ public class SingleClientConnManager implements ClientConnectionManager {
+
+@@ -82,19 +79,15 @@ public class SingleClientConnManager implements ClientConnectionManager {
+ protected final boolean alwaysShutDown;
+
+ /** The one and only entry in this pool. */
+- @GuardedBy("this")
+ protected volatile PoolEntry uniquePoolEntry;
+
+ /** The currently issued managed connection, if any. */
+- @GuardedBy("this")
+ protected volatile ConnAdapter managedConn;
+
+ /** The time of the last connection release, or -1. */
+- @GuardedBy("this")
+ protected volatile long lastReleaseTime;
+
+ /** The time the last released connection expires and shouldn't be reused. */
+- @GuardedBy("this")
+ protected volatile long connectionExpiresTime;
+
+ /** Indicates whether this connection manager is shut down. */
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/tsccm/AbstractConnPool.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/tsccm/AbstractConnPool.java
+index c7e6243..83f4c11 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/tsccm/AbstractConnPool.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/tsccm/AbstractConnPool.java
+@@ -38,7 +38,6 @@ import java.util.concurrent.locks.ReentrantLock;
+
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+-import org.apache.http.annotation.GuardedBy;
+ import org.apache.http.conn.ConnectionPoolTimeoutException;
+ import org.apache.http.conn.OperatedClientConnection;
+ import org.apache.http.conn.routing.HttpRoute;
+@@ -67,11 +66,9 @@ public abstract class AbstractConnPool {
+ protected final Lock poolLock;
+
+ /** References to issued connections */
+- @GuardedBy("poolLock")
+ protected Set leasedConnections;
+
+ /** The current total number of connections. */
+- @GuardedBy("poolLock")
+ protected int numConnections;
+
+ /** Indicates whether this pool is shut down. */
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
+index 5bda67c..4d0ebbf 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
+@@ -31,7 +31,6 @@ import java.util.concurrent.TimeUnit;
+
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.ClientConnectionManager;
+ import org.apache.http.conn.ClientConnectionOperator;
+ import org.apache.http.conn.ClientConnectionRequest;
+@@ -66,7 +65,6 @@ import org.apache.http.util.Asserts;
+ *
+ * @deprecated (4.2) use {@link org.apache.http.impl.conn.PoolingHttpClientConnectionManager}
+ */
+-@ThreadSafe
+ @Deprecated
+ public class ThreadSafeClientConnManager implements ClientConnectionManager {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BestMatchSpec.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BestMatchSpec.java
+index a21da60..85131c9 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BestMatchSpec.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BestMatchSpec.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.cookie;
+
+-import org.apache.http.annotation.ThreadSafe;
+
+ /**
+ * 'Meta' cookie specification that picks up a cookie policy based on
+@@ -37,7 +36,6 @@ import org.apache.http.annotation.ThreadSafe;
+ *
+ * @since 4.0
+ */
+-@ThreadSafe
+ @Deprecated
+ public class BestMatchSpec extends DefaultCookieSpec {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BestMatchSpecFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BestMatchSpecFactory.java
+index 7ad7f63..1bbbf0e 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BestMatchSpecFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BestMatchSpecFactory.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.cookie;
+
+ import java.util.Collection;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.cookie.CookieSpec;
+ import org.apache.http.cookie.CookieSpecFactory;
+ import org.apache.http.cookie.CookieSpecProvider;
+@@ -46,7 +45,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @Deprecated
+ public class BestMatchSpecFactory implements CookieSpecFactory, CookieSpecProvider {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatSpec.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatSpec.java
+index 46d834d..d41924c 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatSpec.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatSpec.java
+@@ -36,7 +36,6 @@ import org.apache.http.FormattedHeader;
+ import org.apache.http.Header;
+ import org.apache.http.HeaderElement;
+ import org.apache.http.NameValuePair;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.utils.DateUtils;
+ import org.apache.http.cookie.Cookie;
+ import org.apache.http.cookie.CookieAttributeHandler;
+@@ -61,7 +60,6 @@ import org.apache.http.util.CharArrayBuffer;
+ * @since 4.0
+ */
+ @Deprecated
+-@ThreadSafe
+ public class BrowserCompatSpec extends CookieSpecBase {
+
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatSpecFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatSpecFactory.java
+index a89908f..d6ccd6b 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatSpecFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatSpecFactory.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.cookie;
+
+ import java.util.Collection;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.cookie.CookieSpec;
+ import org.apache.http.cookie.CookieSpecFactory;
+ import org.apache.http.cookie.CookieSpecProvider;
+@@ -46,7 +45,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @Deprecated
+ public class BrowserCompatSpecFactory implements CookieSpecFactory, CookieSpecProvider {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatVersionAttributeHandler.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatVersionAttributeHandler.java
+index 387259c..2da7d6e 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatVersionAttributeHandler.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/BrowserCompatVersionAttributeHandler.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.cookie;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.cookie.ClientCookie;
+ import org.apache.http.cookie.CommonCookieAttributeHandler;
+ import org.apache.http.cookie.MalformedCookieException;
+@@ -42,7 +41,6 @@ import org.apache.http.util.Args;
+ * @since 4.3
+ */
+ @Deprecated
+-@Immutable
+ public class BrowserCompatVersionAttributeHandler extends
+ AbstractCookieAttributeHandler implements CommonCookieAttributeHandler {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/DateParseException.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/DateParseException.java
+index e6d07bc..ccfb98e 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/DateParseException.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/DateParseException.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.cookie;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * An exception to indicate an error parsing a date string.
+@@ -40,7 +39,6 @@ import org.apache.http.annotation.Immutable;
+ * @deprecated (4.3) no longer used.
+ */
+ @Deprecated
+-@Immutable
+ public class DateParseException extends Exception {
+
+ private static final long serialVersionUID = 4417696455000643370L;
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/DateUtils.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/DateUtils.java
+index 57e0bd1..0166b59 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/DateUtils.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/DateUtils.java
+@@ -30,7 +30,6 @@ package org.apache.http.impl.cookie;
+ import java.util.Date;
+ import java.util.TimeZone;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * A utility class for parsing and formatting HTTP dates as used in cookies and
+@@ -43,7 +42,6 @@ import org.apache.http.annotation.Immutable;
+ * @deprecated (4.3) Use {@link org.apache.http.client.utils.DateUtils}.
+ */
+ @Deprecated
+-@Immutable
+ public final class DateUtils {
+
+ /**
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/IgnoreSpecFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/IgnoreSpecFactory.java
+index 91052c1..77bd49b 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/IgnoreSpecFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/IgnoreSpecFactory.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.cookie;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.cookie.CookieSpec;
+ import org.apache.http.cookie.CookieSpecFactory;
+ import org.apache.http.cookie.CookieSpecProvider;
+@@ -41,7 +40,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ @Deprecated
+ public class IgnoreSpecFactory implements CookieSpecFactory, CookieSpecProvider {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/NetscapeDraftSpecFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/NetscapeDraftSpecFactory.java
+index e5e72d8..dfad75d 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/NetscapeDraftSpecFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/NetscapeDraftSpecFactory.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.cookie;
+
+ import java.util.Collection;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.cookie.CookieSpec;
+ import org.apache.http.cookie.CookieSpecFactory;
+ import org.apache.http.cookie.CookieSpecProvider;
+@@ -46,7 +45,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @Deprecated
+ public class NetscapeDraftSpecFactory implements CookieSpecFactory, CookieSpecProvider {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/PublicSuffixListParser.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/PublicSuffixListParser.java
+index 210956c..a1ee214 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/PublicSuffixListParser.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/PublicSuffixListParser.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.cookie;
+ import java.io.IOException;
+ import java.io.Reader;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.util.PublicSuffixList;
+
+ /**
+@@ -40,7 +39,6 @@ import org.apache.http.conn.util.PublicSuffixList;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @Deprecated
+ public class PublicSuffixListParser {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/RFC2109SpecFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/RFC2109SpecFactory.java
+index 278e240..91d55d3 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/RFC2109SpecFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/RFC2109SpecFactory.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.cookie;
+
+ import java.util.Collection;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.cookie.CookieSpec;
+ import org.apache.http.cookie.CookieSpecFactory;
+ import org.apache.http.cookie.CookieSpecProvider;
+@@ -46,7 +45,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @Deprecated
+ public class RFC2109SpecFactory implements CookieSpecFactory, CookieSpecProvider {
+
+diff --git a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/RFC2965SpecFactory.java b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/RFC2965SpecFactory.java
+index 95ba801..8653048 100644
+--- a/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/RFC2965SpecFactory.java
++++ b/httpclient/src/main/java-deprecated/org/apache/http/impl/cookie/RFC2965SpecFactory.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.cookie;
+
+ import java.util.Collection;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.cookie.CookieSpec;
+ import org.apache.http.cookie.CookieSpecFactory;
+ import org.apache.http.cookie.CookieSpecProvider;
+@@ -46,7 +45,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @Deprecated
+ public class RFC2965SpecFactory implements CookieSpecFactory, CookieSpecProvider {
+
+diff --git a/httpclient/src/main/java/org/apache/http/auth/AUTH.java b/httpclient/src/main/java/org/apache/http/auth/AUTH.java
+index 8ae4545..406245c 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/AUTH.java
++++ b/httpclient/src/main/java/org/apache/http/auth/AUTH.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.auth;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Constants and static helpers related to the HTTP authentication.
+@@ -35,7 +34,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public final class AUTH {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/auth/AuthOption.java b/httpclient/src/main/java/org/apache/http/auth/AuthOption.java
+index 21f0bc9..14cf9b2 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/AuthOption.java
++++ b/httpclient/src/main/java/org/apache/http/auth/AuthOption.java
+@@ -26,13 +26,11 @@
+ */
+ package org.apache.http.auth;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+
+ /**
+ * @since 4.2
+ */
+-@Immutable
+ public final class AuthOption {
+
+ private final AuthScheme authScheme;
+diff --git a/httpclient/src/main/java/org/apache/http/auth/AuthSchemeRegistry.java b/httpclient/src/main/java/org/apache/http/auth/AuthSchemeRegistry.java
+index d3dcddc..e550569 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/AuthSchemeRegistry.java
++++ b/httpclient/src/main/java/org/apache/http/auth/AuthSchemeRegistry.java
+@@ -33,7 +33,6 @@ import java.util.Map;
+ import java.util.concurrent.ConcurrentHashMap;
+
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.config.Lookup;
+ import org.apache.http.params.HttpParams;
+ import org.apache.http.protocol.ExecutionContext;
+@@ -48,7 +47,6 @@ import org.apache.http.util.Args;
+ *
+ * @deprecated (4.3) use {@link org.apache.http.config.Registry}
+ */
+-@ThreadSafe
+ @Deprecated
+ public final class AuthSchemeRegistry implements Lookup {
+
+diff --git a/httpclient/src/main/java/org/apache/http/auth/AuthScope.java b/httpclient/src/main/java/org/apache/http/auth/AuthScope.java
+index 5488540..4ca4e06 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/AuthScope.java
++++ b/httpclient/src/main/java/org/apache/http/auth/AuthScope.java
+@@ -29,7 +29,6 @@ package org.apache.http.auth;
+ import java.util.Locale;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.LangUtils;
+
+@@ -42,7 +41,6 @@ import org.apache.http.util.LangUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class AuthScope {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/auth/AuthState.java b/httpclient/src/main/java/org/apache/http/auth/AuthState.java
+index 9b932e7..64febf3 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/AuthState.java
++++ b/httpclient/src/main/java/org/apache/http/auth/AuthState.java
+@@ -28,7 +28,6 @@ package org.apache.http.auth;
+
+ import java.util.Queue;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -36,7 +35,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class AuthState {
+
+ /** Actual state of authentication protocol */
+diff --git a/httpclient/src/main/java/org/apache/http/auth/AuthenticationException.java b/httpclient/src/main/java/org/apache/http/auth/AuthenticationException.java
+index 8d8e34c..d8e2aa3 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/AuthenticationException.java
++++ b/httpclient/src/main/java/org/apache/http/auth/AuthenticationException.java
+@@ -27,7 +27,6 @@
+ package org.apache.http.auth;
+
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals a failure in authentication process
+@@ -35,7 +34,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class AuthenticationException extends ProtocolException {
+
+ private static final long serialVersionUID = -6794031905674764776L;
+diff --git a/httpclient/src/main/java/org/apache/http/auth/BasicUserPrincipal.java b/httpclient/src/main/java/org/apache/http/auth/BasicUserPrincipal.java
+index 92bf4e6..2a6a5c7 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/BasicUserPrincipal.java
++++ b/httpclient/src/main/java/org/apache/http/auth/BasicUserPrincipal.java
+@@ -29,7 +29,6 @@ package org.apache.http.auth;
+ import java.io.Serializable;
+ import java.security.Principal;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.LangUtils;
+
+@@ -38,7 +37,6 @@ import org.apache.http.util.LangUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public final class BasicUserPrincipal implements Principal, Serializable {
+
+ private static final long serialVersionUID = -2266305184969850467L;
+diff --git a/httpclient/src/main/java/org/apache/http/auth/InvalidCredentialsException.java b/httpclient/src/main/java/org/apache/http/auth/InvalidCredentialsException.java
+index e357241..6ca8c75 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/InvalidCredentialsException.java
++++ b/httpclient/src/main/java/org/apache/http/auth/InvalidCredentialsException.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.auth;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Authentication credentials required to respond to a authentication
+@@ -35,7 +34,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class InvalidCredentialsException extends AuthenticationException {
+
+ private static final long serialVersionUID = -4834003835215460648L;
+diff --git a/httpclient/src/main/java/org/apache/http/auth/KerberosCredentials.java b/httpclient/src/main/java/org/apache/http/auth/KerberosCredentials.java
+index 16d0c5b..cb84778 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/KerberosCredentials.java
++++ b/httpclient/src/main/java/org/apache/http/auth/KerberosCredentials.java
+@@ -29,7 +29,6 @@ package org.apache.http.auth;
+ import java.io.Serializable;
+ import java.security.Principal;
+
+-import org.apache.http.annotation.Immutable;
+ import org.ietf.jgss.GSSCredential;
+
+ /**
+@@ -37,7 +36,6 @@ import org.ietf.jgss.GSSCredential;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public class KerberosCredentials implements Credentials, Serializable {
+
+ private static final long serialVersionUID = 487421613855550713L;
+diff --git a/httpclient/src/main/java/org/apache/http/auth/MalformedChallengeException.java b/httpclient/src/main/java/org/apache/http/auth/MalformedChallengeException.java
+index 172ba0c..2d6d14b 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/MalformedChallengeException.java
++++ b/httpclient/src/main/java/org/apache/http/auth/MalformedChallengeException.java
+@@ -27,7 +27,6 @@
+ package org.apache.http.auth;
+
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals that authentication challenge is in some way invalid or
+@@ -36,7 +35,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class MalformedChallengeException extends ProtocolException {
+
+ private static final long serialVersionUID = 814586927989932284L;
+diff --git a/httpclient/src/main/java/org/apache/http/auth/NTCredentials.java b/httpclient/src/main/java/org/apache/http/auth/NTCredentials.java
+index 430eb2d..074a93e 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/NTCredentials.java
++++ b/httpclient/src/main/java/org/apache/http/auth/NTCredentials.java
+@@ -30,7 +30,6 @@ import java.io.Serializable;
+ import java.security.Principal;
+ import java.util.Locale;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.LangUtils;
+
+@@ -40,7 +39,6 @@ import org.apache.http.util.LangUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class NTCredentials implements Credentials, Serializable {
+
+ private static final long serialVersionUID = -7385699315228907265L;
+diff --git a/httpclient/src/main/java/org/apache/http/auth/NTUserPrincipal.java b/httpclient/src/main/java/org/apache/http/auth/NTUserPrincipal.java
+index 8299939..e7db1ca 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/NTUserPrincipal.java
++++ b/httpclient/src/main/java/org/apache/http/auth/NTUserPrincipal.java
+@@ -30,7 +30,6 @@ import java.io.Serializable;
+ import java.security.Principal;
+ import java.util.Locale;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.LangUtils;
+
+@@ -39,7 +38,6 @@ import org.apache.http.util.LangUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class NTUserPrincipal implements Principal, Serializable {
+
+ private static final long serialVersionUID = -6870169797924406894L;
+diff --git a/httpclient/src/main/java/org/apache/http/auth/UsernamePasswordCredentials.java b/httpclient/src/main/java/org/apache/http/auth/UsernamePasswordCredentials.java
+index b593b24..a2aa5cc 100644
+--- a/httpclient/src/main/java/org/apache/http/auth/UsernamePasswordCredentials.java
++++ b/httpclient/src/main/java/org/apache/http/auth/UsernamePasswordCredentials.java
+@@ -29,7 +29,6 @@ package org.apache.http.auth;
+ import java.io.Serializable;
+ import java.security.Principal;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.LangUtils;
+
+@@ -39,7 +38,6 @@ import org.apache.http.util.LangUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class UsernamePasswordCredentials implements Credentials, Serializable {
+
+ private static final long serialVersionUID = 243343858802739403L;
+diff --git a/httpclient/src/main/java/org/apache/http/client/CircularRedirectException.java b/httpclient/src/main/java/org/apache/http/client/CircularRedirectException.java
+index 489aa72..c5a33fd 100644
+--- a/httpclient/src/main/java/org/apache/http/client/CircularRedirectException.java
++++ b/httpclient/src/main/java/org/apache/http/client/CircularRedirectException.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.client;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals a circular redirect
+@@ -34,7 +33,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class CircularRedirectException extends RedirectException {
+
+ private static final long serialVersionUID = 6830063487001091803L;
+diff --git a/httpclient/src/main/java/org/apache/http/client/ClientProtocolException.java b/httpclient/src/main/java/org/apache/http/client/ClientProtocolException.java
+index 8383eac..c469e37 100644
+--- a/httpclient/src/main/java/org/apache/http/client/ClientProtocolException.java
++++ b/httpclient/src/main/java/org/apache/http/client/ClientProtocolException.java
+@@ -28,14 +28,12 @@ package org.apache.http.client;
+
+ import java.io.IOException;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals an error in the HTTP protocol.
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class ClientProtocolException extends IOException {
+
+ private static final long serialVersionUID = -5596590843227115865L;
+diff --git a/httpclient/src/main/java/org/apache/http/client/HttpResponseException.java b/httpclient/src/main/java/org/apache/http/client/HttpResponseException.java
+index 07e4377..03496ed 100644
+--- a/httpclient/src/main/java/org/apache/http/client/HttpResponseException.java
++++ b/httpclient/src/main/java/org/apache/http/client/HttpResponseException.java
+@@ -26,14 +26,12 @@
+ */
+ package org.apache.http.client;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals a non 2xx HTTP response.
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class HttpResponseException extends ClientProtocolException {
+
+ private static final long serialVersionUID = -7186627969477257933L;
+diff --git a/httpclient/src/main/java/org/apache/http/client/NonRepeatableRequestException.java b/httpclient/src/main/java/org/apache/http/client/NonRepeatableRequestException.java
+index 4f4befb..ee70c21 100644
+--- a/httpclient/src/main/java/org/apache/http/client/NonRepeatableRequestException.java
++++ b/httpclient/src/main/java/org/apache/http/client/NonRepeatableRequestException.java
+@@ -27,7 +27,6 @@
+ package org.apache.http.client;
+
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals failure to retry the request due to non-repeatable request
+@@ -36,7 +35,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class NonRepeatableRequestException extends ProtocolException {
+
+ private static final long serialVersionUID = 82685265288806048L;
+diff --git a/httpclient/src/main/java/org/apache/http/client/RedirectException.java b/httpclient/src/main/java/org/apache/http/client/RedirectException.java
+index cf2abac..6bfa88b 100644
+--- a/httpclient/src/main/java/org/apache/http/client/RedirectException.java
++++ b/httpclient/src/main/java/org/apache/http/client/RedirectException.java
+@@ -27,7 +27,6 @@
+ package org.apache.http.client;
+
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals violation of HTTP specification caused by an invalid redirect
+@@ -35,7 +34,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class RedirectException extends ProtocolException {
+
+ private static final long serialVersionUID = 4418824536372559326L;
+diff --git a/httpclient/src/main/java/org/apache/http/client/config/AuthSchemes.java b/httpclient/src/main/java/org/apache/http/client/config/AuthSchemes.java
+index 58f5d61..8de7298 100644
+--- a/httpclient/src/main/java/org/apache/http/client/config/AuthSchemes.java
++++ b/httpclient/src/main/java/org/apache/http/client/config/AuthSchemes.java
+@@ -27,14 +27,12 @@
+
+ package org.apache.http.client.config;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Standard authentication schemes supported by HttpClient.
+ *
+ * @since 4.3
+ */
+-@Immutable
+ public final class AuthSchemes {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/client/config/CookieSpecs.java b/httpclient/src/main/java/org/apache/http/client/config/CookieSpecs.java
+index 86477f2..bc6c71f 100644
+--- a/httpclient/src/main/java/org/apache/http/client/config/CookieSpecs.java
++++ b/httpclient/src/main/java/org/apache/http/client/config/CookieSpecs.java
+@@ -27,14 +27,12 @@
+
+ package org.apache.http.client.config;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Standard cookie specifications supported by HttpClient.
+ *
+ * @since 4.3
+ */
+-@Immutable
+ public final class CookieSpecs {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/client/config/RequestConfig.java b/httpclient/src/main/java/org/apache/http/client/config/RequestConfig.java
+index 87f772f..4e2aca7 100644
+--- a/httpclient/src/main/java/org/apache/http/client/config/RequestConfig.java
++++ b/httpclient/src/main/java/org/apache/http/client/config/RequestConfig.java
+@@ -31,14 +31,12 @@ import java.net.InetAddress;
+ import java.util.Collection;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Immutable class encapsulating request configuration items.
+ * The default setting for stale connection checking changed
+ * to false, and the feature was deprecated starting with version 4.4.
+ */
+-@Immutable
+ public class RequestConfig implements Cloneable {
+
+ public static final RequestConfig DEFAULT = new Builder().build();
+diff --git a/httpclient/src/main/java/org/apache/http/client/entity/EntityBuilder.java b/httpclient/src/main/java/org/apache/http/client/entity/EntityBuilder.java
+index ce3dfe2..3c96678 100644
+--- a/httpclient/src/main/java/org/apache/http/client/entity/EntityBuilder.java
++++ b/httpclient/src/main/java/org/apache/http/client/entity/EntityBuilder.java
+@@ -35,7 +35,6 @@ import java.util.List;
+
+ import org.apache.http.HttpEntity;
+ import org.apache.http.NameValuePair;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.entity.AbstractHttpEntity;
+ import org.apache.http.entity.BasicHttpEntity;
+ import org.apache.http.entity.ByteArrayEntity;
+@@ -63,7 +62,6 @@ import org.apache.http.entity.StringEntity;
+ *
+ * @since 4.3
+ */
+-@NotThreadSafe
+ public class EntityBuilder {
+
+ private String text;
+diff --git a/httpclient/src/main/java/org/apache/http/client/entity/LazyDecompressingInputStream.java b/httpclient/src/main/java/org/apache/http/client/entity/LazyDecompressingInputStream.java
+index db95ce8..613f034 100644
+--- a/httpclient/src/main/java/org/apache/http/client/entity/LazyDecompressingInputStream.java
++++ b/httpclient/src/main/java/org/apache/http/client/entity/LazyDecompressingInputStream.java
+@@ -29,12 +29,10 @@ package org.apache.http.client.entity;
+ import java.io.IOException;
+ import java.io.InputStream;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * Lazy init InputStream wrapper.
+ */
+-@NotThreadSafe
+ class LazyDecompressingInputStream extends InputStream {
+
+ private final InputStream wrappedStream;
+diff --git a/httpclient/src/main/java/org/apache/http/client/entity/UrlEncodedFormEntity.java b/httpclient/src/main/java/org/apache/http/client/entity/UrlEncodedFormEntity.java
+index 80bf863..29b5be1 100644
+--- a/httpclient/src/main/java/org/apache/http/client/entity/UrlEncodedFormEntity.java
++++ b/httpclient/src/main/java/org/apache/http/client/entity/UrlEncodedFormEntity.java
+@@ -31,7 +31,6 @@ import java.nio.charset.Charset;
+ import java.util.List;
+
+ import org.apache.http.NameValuePair;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.utils.URLEncodedUtils;
+ import org.apache.http.entity.ContentType;
+ import org.apache.http.entity.StringEntity;
+@@ -43,7 +42,6 @@ import org.apache.http.protocol.HTTP;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe // AbstractHttpEntity is not thread-safe
+ public class UrlEncodedFormEntity extends StringEntity {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpDelete.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpDelete.java
+index 9b078a3..c94af88 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpDelete.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpDelete.java
+@@ -29,7 +29,6 @@ package org.apache.http.client.methods;
+
+ import java.net.URI;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * HTTP DELETE method
+@@ -46,7 +45,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe // HttpRequestBase is @NotThreadSafe
+ public class HttpDelete extends HttpRequestBase {
+
+ public final static String METHOD_NAME = "DELETE";
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpEntityEnclosingRequestBase.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpEntityEnclosingRequestBase.java
+index 5efb828..4fdf006 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpEntityEnclosingRequestBase.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpEntityEnclosingRequestBase.java
+@@ -30,7 +30,6 @@ package org.apache.http.client.methods;
+ import org.apache.http.Header;
+ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpEntityEnclosingRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.utils.CloneUtils;
+ import org.apache.http.protocol.HTTP;
+
+@@ -40,7 +39,6 @@ import org.apache.http.protocol.HTTP;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe // HttpRequestBase is @NotThreadSafe
+ public abstract class HttpEntityEnclosingRequestBase
+ extends HttpRequestBase implements HttpEntityEnclosingRequest {
+
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpGet.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpGet.java
+index 35de2d3..a268322 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpGet.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpGet.java
+@@ -29,7 +29,6 @@ package org.apache.http.client.methods;
+
+ import java.net.URI;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * HTTP GET method.
+@@ -47,7 +46,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class HttpGet extends HttpRequestBase {
+
+ public final static String METHOD_NAME = "GET";
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpHead.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpHead.java
+index 4e4bd96..b7898cd 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpHead.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpHead.java
+@@ -29,7 +29,6 @@ package org.apache.http.client.methods;
+
+ import java.net.URI;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * HTTP HEAD method.
+@@ -50,7 +49,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class HttpHead extends HttpRequestBase {
+
+ public final static String METHOD_NAME = "HEAD";
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpOptions.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpOptions.java
+index 382edda..304ed4a 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpOptions.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpOptions.java
+@@ -35,7 +35,6 @@ import org.apache.http.Header;
+ import org.apache.http.HeaderElement;
+ import org.apache.http.HeaderIterator;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -55,7 +54,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class HttpOptions extends HttpRequestBase {
+
+ public final static String METHOD_NAME = "OPTIONS";
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpPatch.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpPatch.java
+index 43153e4..d43188e 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpPatch.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpPatch.java
+@@ -29,7 +29,6 @@ package org.apache.http.client.methods;
+
+ import java.net.URI;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * HTTP PATCH method.
+@@ -50,7 +49,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @since 4.2
+ */
+-@NotThreadSafe
+ public class HttpPatch extends HttpEntityEnclosingRequestBase {
+
+ public final static String METHOD_NAME = "PATCH";
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpPost.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpPost.java
+index 410092e..6407e3f 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpPost.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpPost.java
+@@ -29,7 +29,6 @@ package org.apache.http.client.methods;
+
+ import java.net.URI;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * HTTP POST method.
+@@ -54,7 +53,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class HttpPost extends HttpEntityEnclosingRequestBase {
+
+ public final static String METHOD_NAME = "POST";
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpPut.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpPut.java
+index ac0515a..2a061ad 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpPut.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpPut.java
+@@ -29,7 +29,6 @@ package org.apache.http.client.methods;
+
+ import java.net.URI;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * HTTP PUT method.
+@@ -46,7 +45,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class HttpPut extends HttpEntityEnclosingRequestBase {
+
+ public final static String METHOD_NAME = "PUT";
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java
+index f997c3c..e5c47d4 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java
+@@ -31,7 +31,6 @@ import java.net.URI;
+
+ import org.apache.http.ProtocolVersion;
+ import org.apache.http.RequestLine;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.config.RequestConfig;
+ import org.apache.http.message.BasicRequestLine;
+ import org.apache.http.params.HttpProtocolParams;
+@@ -42,7 +41,6 @@ import org.apache.http.params.HttpProtocolParams;
+ * @since 4.0
+ */
+ @SuppressWarnings("deprecation")
+-@NotThreadSafe
+ public abstract class HttpRequestBase extends AbstractExecutionAwareRequest
+ implements HttpUriRequest, Configurable {
+
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestWrapper.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestWrapper.java
+index 3df8bbb..dbfbd0e 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestWrapper.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestWrapper.java
+@@ -36,7 +36,6 @@ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.ProtocolVersion;
+ import org.apache.http.RequestLine;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.message.AbstractHttpMessage;
+ import org.apache.http.message.BasicRequestLine;
+ import org.apache.http.params.HttpParams;
+@@ -50,7 +49,6 @@ import org.apache.http.util.Args;
+ * @since 4.3
+ */
+ @SuppressWarnings("deprecation")
+-@NotThreadSafe
+ public class HttpRequestWrapper extends AbstractHttpMessage implements HttpUriRequest {
+
+ private final HttpRequest original;
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/HttpTrace.java b/httpclient/src/main/java/org/apache/http/client/methods/HttpTrace.java
+index c0bcc86..7a0d908 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/HttpTrace.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/HttpTrace.java
+@@ -29,7 +29,6 @@ package org.apache.http.client.methods;
+
+ import java.net.URI;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * HTTP TRACE method.
+@@ -49,7 +48,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class HttpTrace extends HttpRequestBase {
+
+ public final static String METHOD_NAME = "TRACE";
+diff --git a/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java b/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java
+index f6cd681..b630dba 100644
+--- a/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java
++++ b/httpclient/src/main/java/org/apache/http/client/methods/RequestBuilder.java
+@@ -43,7 +43,6 @@ import org.apache.http.HttpEntityEnclosingRequest;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.NameValuePair;
+ import org.apache.http.ProtocolVersion;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.client.config.RequestConfig;
+ import org.apache.http.client.entity.UrlEncodedFormEntity;
+ import org.apache.http.client.utils.URIBuilder;
+@@ -67,7 +66,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.3
+ */
+-@NotThreadSafe
+ public class RequestBuilder {
+
+ private String method;
+diff --git a/httpclient/src/main/java/org/apache/http/client/protocol/HttpClientContext.java b/httpclient/src/main/java/org/apache/http/client/protocol/HttpClientContext.java
+index db363c4..e763e9a 100644
+--- a/httpclient/src/main/java/org/apache/http/client/protocol/HttpClientContext.java
++++ b/httpclient/src/main/java/org/apache/http/client/protocol/HttpClientContext.java
+@@ -30,7 +30,6 @@ package org.apache.http.client.protocol;
+ import java.net.URI;
+ import java.util.List;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AuthSchemeProvider;
+ import org.apache.http.auth.AuthState;
+ import org.apache.http.client.AuthCache;
+@@ -54,7 +53,6 @@ import org.apache.http.protocol.HttpCoreContext;
+ *
+ * @since 4.3
+ */
+-@NotThreadSafe
+ public class HttpClientContext extends HttpCoreContext {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/client/protocol/RequestAcceptEncoding.java b/httpclient/src/main/java/org/apache/http/client/protocol/RequestAcceptEncoding.java
+index 9b260e2..eb509d8 100644
+--- a/httpclient/src/main/java/org/apache/http/client/protocol/RequestAcceptEncoding.java
++++ b/httpclient/src/main/java/org/apache/http/client/protocol/RequestAcceptEncoding.java
+@@ -32,7 +32,6 @@ import java.util.List;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpRequestInterceptor;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.config.RequestConfig;
+ import org.apache.http.protocol.HttpContext;
+
+@@ -45,7 +44,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ public class RequestAcceptEncoding implements HttpRequestInterceptor {
+
+ private final String acceptEncoding;
+diff --git a/httpclient/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java b/httpclient/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java
+index b548d04..9562457 100644
+--- a/httpclient/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java
++++ b/httpclient/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java
+@@ -41,7 +41,6 @@ import org.apache.http.HttpException;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpRequestInterceptor;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.CookieStore;
+ import org.apache.http.client.config.CookieSpecs;
+ import org.apache.http.client.config.RequestConfig;
+@@ -63,7 +62,6 @@ import org.apache.http.util.TextUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class RequestAddCookies implements HttpRequestInterceptor {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java b/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
+index fa6a362..a00cc98 100644
+--- a/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
++++ b/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
+@@ -35,7 +35,6 @@ import org.apache.http.HttpException;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpRequestInterceptor;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthProtocolState;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthScope;
+@@ -54,7 +53,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ public class RequestAuthCache implements HttpRequestInterceptor {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java/org/apache/http/client/protocol/RequestClientConnControl.java b/httpclient/src/main/java/org/apache/http/client/protocol/RequestClientConnControl.java
+index aba6602..921a534 100644
+--- a/httpclient/src/main/java/org/apache/http/client/protocol/RequestClientConnControl.java
++++ b/httpclient/src/main/java/org/apache/http/client/protocol/RequestClientConnControl.java
+@@ -34,7 +34,6 @@ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpRequestInterceptor;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.routing.RouteInfo;
+ import org.apache.http.protocol.HTTP;
+ import org.apache.http.protocol.HttpContext;
+@@ -47,7 +46,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class RequestClientConnControl implements HttpRequestInterceptor {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java/org/apache/http/client/protocol/RequestDefaultHeaders.java b/httpclient/src/main/java/org/apache/http/client/protocol/RequestDefaultHeaders.java
+index 967270a..68dee18 100644
+--- a/httpclient/src/main/java/org/apache/http/client/protocol/RequestDefaultHeaders.java
++++ b/httpclient/src/main/java/org/apache/http/client/protocol/RequestDefaultHeaders.java
+@@ -34,7 +34,6 @@ import org.apache.http.Header;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpRequestInterceptor;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.params.ClientPNames;
+ import org.apache.http.protocol.HttpContext;
+ import org.apache.http.util.Args;
+@@ -45,7 +44,6 @@ import org.apache.http.util.Args;
+ * @since 4.0
+ */
+ @SuppressWarnings("deprecation")
+-@Immutable
+ public class RequestDefaultHeaders implements HttpRequestInterceptor {
+
+ private final Collection extends Header> defaultHeaders;
+diff --git a/httpclient/src/main/java/org/apache/http/client/protocol/RequestExpectContinue.java b/httpclient/src/main/java/org/apache/http/client/protocol/RequestExpectContinue.java
+index 27edc17..b77e05b 100644
+--- a/httpclient/src/main/java/org/apache/http/client/protocol/RequestExpectContinue.java
++++ b/httpclient/src/main/java/org/apache/http/client/protocol/RequestExpectContinue.java
+@@ -36,7 +36,6 @@ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpRequestInterceptor;
+ import org.apache.http.HttpVersion;
+ import org.apache.http.ProtocolVersion;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.config.RequestConfig;
+ import org.apache.http.protocol.HTTP;
+ import org.apache.http.protocol.HttpContext;
+@@ -52,7 +51,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.3
+ */
+-@Immutable
+ public class RequestExpectContinue implements HttpRequestInterceptor {
+
+ public RequestExpectContinue() {
+diff --git a/httpclient/src/main/java/org/apache/http/client/protocol/ResponseContentEncoding.java b/httpclient/src/main/java/org/apache/http/client/protocol/ResponseContentEncoding.java
+index c4d0cfc..98b4dc9 100644
+--- a/httpclient/src/main/java/org/apache/http/client/protocol/ResponseContentEncoding.java
++++ b/httpclient/src/main/java/org/apache/http/client/protocol/ResponseContentEncoding.java
+@@ -37,7 +37,6 @@ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpResponseInterceptor;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.config.RequestConfig;
+ import org.apache.http.client.entity.DecompressingEntity;
+ import org.apache.http.client.entity.DeflateInputStream;
+@@ -55,7 +54,6 @@ import org.apache.http.protocol.HttpContext;
+ * @since 4.1
+ *
+ */
+-@Immutable
+ public class ResponseContentEncoding implements HttpResponseInterceptor {
+
+ public static final String UNCOMPRESSED = "http.client.response.uncompressed";
+diff --git a/httpclient/src/main/java/org/apache/http/client/protocol/ResponseProcessCookies.java b/httpclient/src/main/java/org/apache/http/client/protocol/ResponseProcessCookies.java
+index 5f3cfab..74087c4 100644
+--- a/httpclient/src/main/java/org/apache/http/client/protocol/ResponseProcessCookies.java
++++ b/httpclient/src/main/java/org/apache/http/client/protocol/ResponseProcessCookies.java
+@@ -37,7 +37,6 @@ import org.apache.http.HeaderIterator;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpResponseInterceptor;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.CookieStore;
+ import org.apache.http.cookie.Cookie;
+ import org.apache.http.cookie.CookieOrigin;
+@@ -53,7 +52,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class ResponseProcessCookies implements HttpResponseInterceptor {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java/org/apache/http/client/utils/CloneUtils.java b/httpclient/src/main/java/org/apache/http/client/utils/CloneUtils.java
+index 597dc26..861faa5 100644
+--- a/httpclient/src/main/java/org/apache/http/client/utils/CloneUtils.java
++++ b/httpclient/src/main/java/org/apache/http/client/utils/CloneUtils.java
+@@ -29,14 +29,12 @@ package org.apache.http.client.utils;
+ import java.lang.reflect.InvocationTargetException;
+ import java.lang.reflect.Method;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * A collection of utilities to workaround limitations of Java clone framework.
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class CloneUtils {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/client/utils/DateUtils.java b/httpclient/src/main/java/org/apache/http/client/utils/DateUtils.java
+index a18fbd7..2de83fe 100644
+--- a/httpclient/src/main/java/org/apache/http/client/utils/DateUtils.java
++++ b/httpclient/src/main/java/org/apache/http/client/utils/DateUtils.java
+@@ -37,7 +37,6 @@ import java.util.Locale;
+ import java.util.Map;
+ import java.util.TimeZone;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -47,7 +46,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.3
+ */
+-@Immutable
+ public final class DateUtils {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/client/utils/URIBuilder.java b/httpclient/src/main/java/org/apache/http/client/utils/URIBuilder.java
+index 227e494..1cc54eb 100644
+--- a/httpclient/src/main/java/org/apache/http/client/utils/URIBuilder.java
++++ b/httpclient/src/main/java/org/apache/http/client/utils/URIBuilder.java
+@@ -35,7 +35,6 @@ import java.util.List;
+
+ import org.apache.http.Consts;
+ import org.apache.http.NameValuePair;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.conn.util.InetAddressUtils;
+ import org.apache.http.message.BasicNameValuePair;
+
+@@ -44,7 +43,6 @@ import org.apache.http.message.BasicNameValuePair;
+ *
+ * @since 4.2
+ */
+-@NotThreadSafe
+ public class URIBuilder {
+
+ private String scheme;
+diff --git a/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java b/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java
+index 72c299e..02f8c1a 100644
+--- a/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java
++++ b/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java
+@@ -33,7 +33,6 @@ import java.util.Locale;
+ import java.util.Stack;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.routing.RouteInfo;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.TextUtils;
+@@ -44,7 +43,6 @@ import org.apache.http.util.TextUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class URIUtils {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/client/utils/URLEncodedUtils.java b/httpclient/src/main/java/org/apache/http/client/utils/URLEncodedUtils.java
+index de18e6d..2a62d22 100644
+--- a/httpclient/src/main/java/org/apache/http/client/utils/URLEncodedUtils.java
++++ b/httpclient/src/main/java/org/apache/http/client/utils/URLEncodedUtils.java
+@@ -46,7 +46,6 @@ import org.apache.http.Header;
+ import org.apache.http.HeaderElement;
+ import org.apache.http.HttpEntity;
+ import org.apache.http.NameValuePair;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.entity.ContentType;
+ import org.apache.http.message.BasicNameValuePair;
+ import org.apache.http.message.ParserCursor;
+@@ -60,7 +59,6 @@ import org.apache.http.util.CharArrayBuffer;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class URLEncodedUtils {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/conn/ConnectTimeoutException.java b/httpclient/src/main/java/org/apache/http/conn/ConnectTimeoutException.java
+index a76bcda..ed2b329 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/ConnectTimeoutException.java
++++ b/httpclient/src/main/java/org/apache/http/conn/ConnectTimeoutException.java
+@@ -33,7 +33,6 @@ import java.net.InetAddress;
+ import java.util.Arrays;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * A timeout while connecting to an HTTP server or waiting for an
+@@ -42,7 +41,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class ConnectTimeoutException extends InterruptedIOException {
+
+ private static final long serialVersionUID = -4816682903149535989L;
+diff --git a/httpclient/src/main/java/org/apache/http/conn/ConnectionPoolTimeoutException.java b/httpclient/src/main/java/org/apache/http/conn/ConnectionPoolTimeoutException.java
+index 3328cc4..ef7d625 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/ConnectionPoolTimeoutException.java
++++ b/httpclient/src/main/java/org/apache/http/conn/ConnectionPoolTimeoutException.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.conn;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * A timeout while waiting for an available connection
+@@ -36,7 +35,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class ConnectionPoolTimeoutException extends ConnectTimeoutException {
+
+ private static final long serialVersionUID = -7898874842020245128L;
+diff --git a/httpclient/src/main/java/org/apache/http/conn/EofSensorInputStream.java b/httpclient/src/main/java/org/apache/http/conn/EofSensorInputStream.java
+index 3b81bd0..3e962a0 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/EofSensorInputStream.java
++++ b/httpclient/src/main/java/org/apache/http/conn/EofSensorInputStream.java
+@@ -29,7 +29,6 @@ package org.apache.http.conn;
+ import java.io.IOException;
+ import java.io.InputStream;
+
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -43,7 +42,6 @@ import org.apache.http.util.Args;
+ */
+ // don't use FilterInputStream as the base class, we'd have to
+ // override markSupported(), mark(), and reset() to disable them
+-@NotThreadSafe
+ public class EofSensorInputStream extends InputStream implements ConnectionReleaseTrigger {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/conn/HttpHostConnectException.java b/httpclient/src/main/java/org/apache/http/conn/HttpHostConnectException.java
+index fa88a45..7a02616 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/HttpHostConnectException.java
++++ b/httpclient/src/main/java/org/apache/http/conn/HttpHostConnectException.java
+@@ -32,7 +32,6 @@ import java.net.InetAddress;
+ import java.util.Arrays;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * A {@link ConnectException} that specifies the {@link HttpHost} that was
+@@ -40,7 +39,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class HttpHostConnectException extends ConnectException {
+
+ private static final long serialVersionUID = -3194482710275220224L;
+diff --git a/httpclient/src/main/java/org/apache/http/conn/UnsupportedSchemeException.java b/httpclient/src/main/java/org/apache/http/conn/UnsupportedSchemeException.java
+index 268a0b8..f40857b 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/UnsupportedSchemeException.java
++++ b/httpclient/src/main/java/org/apache/http/conn/UnsupportedSchemeException.java
+@@ -29,14 +29,12 @@ package org.apache.http.conn;
+
+ import java.io.IOException;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals failure to establish connection using an unknown protocol scheme.
+ *
+ * @since 4.3
+ */
+-@Immutable
+ public class UnsupportedSchemeException extends IOException {
+
+ private static final long serialVersionUID = 3597127619218687636L;
+diff --git a/httpclient/src/main/java/org/apache/http/conn/routing/BasicRouteDirector.java b/httpclient/src/main/java/org/apache/http/conn/routing/BasicRouteDirector.java
+index eff3f04..b89035f 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/routing/BasicRouteDirector.java
++++ b/httpclient/src/main/java/org/apache/http/conn/routing/BasicRouteDirector.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.conn.routing;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -35,7 +34,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class BasicRouteDirector implements HttpRouteDirector {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/conn/routing/HttpRoute.java b/httpclient/src/main/java/org/apache/http/conn/routing/HttpRoute.java
+index 847fa7e..cb237e2 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/routing/HttpRoute.java
++++ b/httpclient/src/main/java/org/apache/http/conn/routing/HttpRoute.java
+@@ -35,7 +35,6 @@ import java.util.Collections;
+ import java.util.List;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.LangUtils;
+
+@@ -44,7 +43,6 @@ import org.apache.http.util.LangUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public final class HttpRoute implements RouteInfo, Cloneable {
+
+ /** The target host to connect to. */
+diff --git a/httpclient/src/main/java/org/apache/http/conn/routing/RouteTracker.java b/httpclient/src/main/java/org/apache/http/conn/routing/RouteTracker.java
+index e550799..b58aca6 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/routing/RouteTracker.java
++++ b/httpclient/src/main/java/org/apache/http/conn/routing/RouteTracker.java
+@@ -30,7 +30,6 @@ package org.apache.http.conn.routing;
+ import java.net.InetAddress;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.Asserts;
+ import org.apache.http.util.LangUtils;
+@@ -40,7 +39,6 @@ import org.apache.http.util.LangUtils;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public final class RouteTracker implements RouteInfo, Cloneable {
+
+ /** The target host to connect to. */
+diff --git a/httpclient/src/main/java/org/apache/http/conn/scheme/Scheme.java b/httpclient/src/main/java/org/apache/http/conn/scheme/Scheme.java
+index 68d7aa9..bbd0ebc 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/scheme/Scheme.java
++++ b/httpclient/src/main/java/org/apache/http/conn/scheme/Scheme.java
+@@ -28,7 +28,6 @@ package org.apache.http.conn.scheme;
+
+ import java.util.Locale;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.LangUtils;
+
+@@ -50,7 +49,6 @@ import org.apache.http.util.LangUtils;
+ * @deprecated (4.3) use {@link org.apache.http.conn.SchemePortResolver} for default port
+ * resolution and {@link org.apache.http.config.Registry} for socket factory lookups.
+ */
+-@Immutable
+ @Deprecated
+ public final class Scheme {
+
+diff --git a/httpclient/src/main/java/org/apache/http/conn/scheme/SchemeRegistry.java b/httpclient/src/main/java/org/apache/http/conn/scheme/SchemeRegistry.java
+index 6928ce5..024a152 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/scheme/SchemeRegistry.java
++++ b/httpclient/src/main/java/org/apache/http/conn/scheme/SchemeRegistry.java
+@@ -32,7 +32,6 @@ import java.util.Map;
+ import java.util.concurrent.ConcurrentHashMap;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -43,7 +42,6 @@ import org.apache.http.util.Args;
+ *
+ * @deprecated (4.3) use {@link org.apache.http.config.Registry}
+ */
+-@ThreadSafe
+ @Deprecated
+ public final class SchemeRegistry {
+
+diff --git a/httpclient/src/main/java/org/apache/http/conn/socket/PlainConnectionSocketFactory.java b/httpclient/src/main/java/org/apache/http/conn/socket/PlainConnectionSocketFactory.java
+index 193e73d..3881638 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/socket/PlainConnectionSocketFactory.java
++++ b/httpclient/src/main/java/org/apache/http/conn/socket/PlainConnectionSocketFactory.java
+@@ -32,7 +32,6 @@ import java.net.InetSocketAddress;
+ import java.net.Socket;
+
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.protocol.HttpContext;
+
+ /**
+@@ -40,7 +39,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.3
+ */
+-@Immutable
+ public class PlainConnectionSocketFactory implements ConnectionSocketFactory {
+
+ public static final PlainConnectionSocketFactory INSTANCE = new PlainConnectionSocketFactory();
+diff --git a/httpclient/src/main/java/org/apache/http/conn/ssl/AllowAllHostnameVerifier.java b/httpclient/src/main/java/org/apache/http/conn/ssl/AllowAllHostnameVerifier.java
+index 3dc856e..07ffba1 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/ssl/AllowAllHostnameVerifier.java
++++ b/httpclient/src/main/java/org/apache/http/conn/ssl/AllowAllHostnameVerifier.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.conn.ssl;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * The ALLOW_ALL HostnameVerifier essentially turns hostname verification
+@@ -39,7 +38,6 @@ import org.apache.http.annotation.Immutable;
+ * @deprecated (4.4) Use {@link org.apache.http.conn.ssl.NoopHostnameVerifier}
+ */
+ @Deprecated
+-@Immutable
+ public class AllowAllHostnameVerifier extends AbstractVerifier {
+
+ public static final AllowAllHostnameVerifier INSTANCE = new AllowAllHostnameVerifier();
+diff --git a/httpclient/src/main/java/org/apache/http/conn/ssl/BrowserCompatHostnameVerifier.java b/httpclient/src/main/java/org/apache/http/conn/ssl/BrowserCompatHostnameVerifier.java
+index 4c4aee9..fc2e1e7 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/ssl/BrowserCompatHostnameVerifier.java
++++ b/httpclient/src/main/java/org/apache/http/conn/ssl/BrowserCompatHostnameVerifier.java
+@@ -29,7 +29,6 @@ package org.apache.http.conn.ssl;
+
+ import javax.net.ssl.SSLException;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * The HostnameVerifier that works the same way as Curl and Firefox.
+@@ -47,7 +46,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @deprecated (4.4) Use {@link org.apache.http.conn.ssl.DefaultHostnameVerifier}
+ */
+-@Immutable
+ @Deprecated
+ public class BrowserCompatHostnameVerifier extends AbstractVerifier {
+
+diff --git a/httpclient/src/main/java/org/apache/http/conn/ssl/DefaultHostnameVerifier.java b/httpclient/src/main/java/org/apache/http/conn/ssl/DefaultHostnameVerifier.java
+index 8539791..a8bf539 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/ssl/DefaultHostnameVerifier.java
++++ b/httpclient/src/main/java/org/apache/http/conn/ssl/DefaultHostnameVerifier.java
+@@ -51,7 +51,6 @@ import javax.security.auth.x500.X500Principal;
+
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.util.DomainType;
+ import org.apache.http.conn.util.InetAddressUtils;
+ import org.apache.http.conn.util.PublicSuffixMatcher;
+@@ -61,7 +60,6 @@ import org.apache.http.conn.util.PublicSuffixMatcher;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public final class DefaultHostnameVerifier implements HostnameVerifier {
+
+ enum TYPE { IPv4, IPv6, DNS };
+diff --git a/httpclient/src/main/java/org/apache/http/conn/ssl/NoopHostnameVerifier.java b/httpclient/src/main/java/org/apache/http/conn/ssl/NoopHostnameVerifier.java
+index 1b5cdd9..7b31565 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/ssl/NoopHostnameVerifier.java
++++ b/httpclient/src/main/java/org/apache/http/conn/ssl/NoopHostnameVerifier.java
+@@ -30,7 +30,6 @@ package org.apache.http.conn.ssl;
+ import javax.net.ssl.HostnameVerifier;
+ import javax.net.ssl.SSLSession;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * The NO_OP HostnameVerifier essentially turns hostname verification
+@@ -38,7 +37,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public class NoopHostnameVerifier implements HostnameVerifier {
+
+ public static final NoopHostnameVerifier INSTANCE = new NoopHostnameVerifier();
+diff --git a/httpclient/src/main/java/org/apache/http/conn/ssl/SSLConnectionSocketFactory.java b/httpclient/src/main/java/org/apache/http/conn/ssl/SSLConnectionSocketFactory.java
+index df8689b..620051f 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/ssl/SSLConnectionSocketFactory.java
++++ b/httpclient/src/main/java/org/apache/http/conn/ssl/SSLConnectionSocketFactory.java
+@@ -50,7 +50,6 @@ import javax.security.auth.x500.X500Principal;
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
+ import org.apache.http.conn.util.PublicSuffixMatcherLoader;
+ import org.apache.http.protocol.HttpContext;
+@@ -133,7 +132,6 @@ import org.apache.http.util.TextUtils;
+ *
+ * @since 4.3
+ */
+-@ThreadSafe @SuppressWarnings("deprecation")
+ public class SSLConnectionSocketFactory implements LayeredConnectionSocketFactory {
+
+ public static final String TLS = "TLS";
+diff --git a/httpclient/src/main/java/org/apache/http/conn/ssl/StrictHostnameVerifier.java b/httpclient/src/main/java/org/apache/http/conn/ssl/StrictHostnameVerifier.java
+index 362d6ab..4f5714c 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/ssl/StrictHostnameVerifier.java
++++ b/httpclient/src/main/java/org/apache/http/conn/ssl/StrictHostnameVerifier.java
+@@ -29,7 +29,6 @@ package org.apache.http.conn.ssl;
+
+ import javax.net.ssl.SSLException;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * The Strict HostnameVerifier works the same way as Sun Java 1.4, Sun
+@@ -53,7 +52,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @deprecated (4.4) Use {@link org.apache.http.conn.ssl.DefaultHostnameVerifier}
+ */
+-@Immutable
+ @Deprecated
+ public class StrictHostnameVerifier extends AbstractVerifier {
+
+diff --git a/httpclient/src/main/java/org/apache/http/conn/util/InetAddressUtils.java b/httpclient/src/main/java/org/apache/http/conn/util/InetAddressUtils.java
+index acee8af..c7b8b85 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/util/InetAddressUtils.java
++++ b/httpclient/src/main/java/org/apache/http/conn/util/InetAddressUtils.java
+@@ -29,14 +29,12 @@ package org.apache.http.conn.util;
+
+ import java.util.regex.Pattern;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * A collection of utilities relating to InetAddresses.
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class InetAddressUtils {
+
+ private InetAddressUtils() {
+diff --git a/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixList.java b/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixList.java
+index dfdd928..2bf20d5 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixList.java
++++ b/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixList.java
+@@ -29,7 +29,6 @@ package org.apache.http.conn.util;
+ import java.util.Collections;
+ import java.util.List;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -41,7 +40,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public final class PublicSuffixList {
+
+ private final DomainType type;
+diff --git a/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixListParser.java b/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixListParser.java
+index 0bf63e1..c7b2e5a 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixListParser.java
++++ b/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixListParser.java
+@@ -32,7 +32,6 @@ import java.io.Reader;
+ import java.util.ArrayList;
+ import java.util.List;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Parses the list from publicsuffix.org
+@@ -40,7 +39,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public final class PublicSuffixListParser {
+
+ public PublicSuffixListParser() {
+diff --git a/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcher.java b/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcher.java
+index 2ec340f..fb50d70 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcher.java
++++ b/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcher.java
+@@ -33,7 +33,6 @@ import java.util.Locale;
+ import java.util.Map;
+ import java.util.concurrent.ConcurrentHashMap;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -46,7 +45,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.4
+ */
+-@ThreadSafe
+ public final class PublicSuffixMatcher {
+
+ private final Map rules;
+diff --git a/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcherLoader.java b/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcherLoader.java
+index f5b5b45..6b7204b 100644
+--- a/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcherLoader.java
++++ b/httpclient/src/main/java/org/apache/http/conn/util/PublicSuffixMatcherLoader.java
+@@ -38,7 +38,6 @@ import java.util.List;
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.Consts;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.util.Args;
+
+ /**
+@@ -46,7 +45,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.4
+ */
+-@ThreadSafe
+ public final class PublicSuffixMatcherLoader {
+
+ private static PublicSuffixMatcher load(final InputStream in) throws IOException {
+diff --git a/httpclient/src/main/java/org/apache/http/cookie/CookieIdentityComparator.java b/httpclient/src/main/java/org/apache/http/cookie/CookieIdentityComparator.java
+index 935a5a3..6f9abe6 100644
+--- a/httpclient/src/main/java/org/apache/http/cookie/CookieIdentityComparator.java
++++ b/httpclient/src/main/java/org/apache/http/cookie/CookieIdentityComparator.java
+@@ -30,7 +30,6 @@ package org.apache.http.cookie;
+ import java.io.Serializable;
+ import java.util.Comparator;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * This cookie comparator can be used to compare identity of cookies.
+@@ -40,7 +39,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class CookieIdentityComparator implements Serializable, Comparator {
+
+ private static final long serialVersionUID = 4466565437490631532L;
+diff --git a/httpclient/src/main/java/org/apache/http/cookie/CookieOrigin.java b/httpclient/src/main/java/org/apache/http/cookie/CookieOrigin.java
+index b46f6bd..3e96d72 100644
+--- a/httpclient/src/main/java/org/apache/http/cookie/CookieOrigin.java
++++ b/httpclient/src/main/java/org/apache/http/cookie/CookieOrigin.java
+@@ -28,7 +28,6 @@ package org.apache.http.cookie;
+
+ import java.util.Locale;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.TextUtils;
+
+@@ -38,7 +37,6 @@ import org.apache.http.util.TextUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public final class CookieOrigin {
+
+ private final String host;
+diff --git a/httpclient/src/main/java/org/apache/http/cookie/CookiePathComparator.java b/httpclient/src/main/java/org/apache/http/cookie/CookiePathComparator.java
+index f9e3e76..94bd3c8 100644
+--- a/httpclient/src/main/java/org/apache/http/cookie/CookiePathComparator.java
++++ b/httpclient/src/main/java/org/apache/http/cookie/CookiePathComparator.java
+@@ -30,7 +30,6 @@ package org.apache.http.cookie;
+ import java.io.Serializable;
+ import java.util.Comparator;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * This cookie comparator ensures that multiple cookies satisfying
+@@ -47,7 +46,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class CookiePathComparator implements Serializable, Comparator {
+
+ public static final CookiePathComparator INSTANCE = new CookiePathComparator();
+diff --git a/httpclient/src/main/java/org/apache/http/cookie/CookiePriorityComparator.java b/httpclient/src/main/java/org/apache/http/cookie/CookiePriorityComparator.java
+index 77e4e01..e8bcda4 100644
+--- a/httpclient/src/main/java/org/apache/http/cookie/CookiePriorityComparator.java
++++ b/httpclient/src/main/java/org/apache/http/cookie/CookiePriorityComparator.java
+@@ -30,7 +30,6 @@ package org.apache.http.cookie;
+ import java.util.Comparator;
+ import java.util.Date;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.impl.cookie.BasicClientCookie;
+
+ /**
+@@ -40,7 +39,6 @@ import org.apache.http.impl.cookie.BasicClientCookie;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public class CookiePriorityComparator implements Comparator {
+
+ public static final CookiePriorityComparator INSTANCE = new CookiePriorityComparator();
+diff --git a/httpclient/src/main/java/org/apache/http/cookie/CookieRestrictionViolationException.java b/httpclient/src/main/java/org/apache/http/cookie/CookieRestrictionViolationException.java
+index 3b30a97..da8272a 100644
+--- a/httpclient/src/main/java/org/apache/http/cookie/CookieRestrictionViolationException.java
++++ b/httpclient/src/main/java/org/apache/http/cookie/CookieRestrictionViolationException.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.cookie;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals that a cookie violates a restriction imposed by the cookie
+@@ -35,7 +34,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ public class CookieRestrictionViolationException extends MalformedCookieException {
+
+ private static final long serialVersionUID = 7371235577078589013L;
+diff --git a/httpclient/src/main/java/org/apache/http/cookie/CookieSpecRegistry.java b/httpclient/src/main/java/org/apache/http/cookie/CookieSpecRegistry.java
+index 43e6ffe..33d66c5 100644
+--- a/httpclient/src/main/java/org/apache/http/cookie/CookieSpecRegistry.java
++++ b/httpclient/src/main/java/org/apache/http/cookie/CookieSpecRegistry.java
+@@ -34,7 +34,6 @@ import java.util.Map;
+ import java.util.concurrent.ConcurrentHashMap;
+
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.config.Lookup;
+ import org.apache.http.params.HttpParams;
+ import org.apache.http.protocol.ExecutionContext;
+@@ -50,7 +49,6 @@ import org.apache.http.util.Args;
+ *
+ * @deprecated (4.3) use {@link org.apache.http.config.Registry}.
+ */
+-@ThreadSafe
+ @Deprecated
+ public final class CookieSpecRegistry implements Lookup {
+
+diff --git a/httpclient/src/main/java/org/apache/http/cookie/MalformedCookieException.java b/httpclient/src/main/java/org/apache/http/cookie/MalformedCookieException.java
+index da70979..4c881a9 100644
+--- a/httpclient/src/main/java/org/apache/http/cookie/MalformedCookieException.java
++++ b/httpclient/src/main/java/org/apache/http/cookie/MalformedCookieException.java
+@@ -28,7 +28,6 @@
+ package org.apache.http.cookie;
+
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Signals that a cookie is in some way invalid or illegal in a given
+@@ -37,7 +36,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class MalformedCookieException extends ProtocolException {
+
+ private static final long serialVersionUID = -6695462944287282185L;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/AuthSchemeBase.java b/httpclient/src/main/java/org/apache/http/impl/auth/AuthSchemeBase.java
+index 452516a..296b15c 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/AuthSchemeBase.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/AuthSchemeBase.java
+@@ -31,7 +31,6 @@ import java.util.Locale;
+ import org.apache.http.FormattedHeader;
+ import org.apache.http.Header;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.AuthenticationException;
+ import org.apache.http.auth.ChallengeState;
+@@ -53,7 +52,6 @@ import org.apache.http.util.CharArrayBuffer;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public abstract class AuthSchemeBase implements ContextAwareAuthScheme {
+
+ protected ChallengeState challengeState;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/BasicScheme.java b/httpclient/src/main/java/org/apache/http/impl/auth/BasicScheme.java
+index 2f51de7..cfd5a6e 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/BasicScheme.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/BasicScheme.java
+@@ -32,7 +32,6 @@ import org.apache.commons.codec.binary.Base64;
+ import org.apache.http.Consts;
+ import org.apache.http.Header;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.AuthenticationException;
+ import org.apache.http.auth.ChallengeState;
+@@ -50,7 +49,6 @@ import org.apache.http.util.EncodingUtils;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class BasicScheme extends RFC2617Scheme {
+
+ private static final long serialVersionUID = -1931571557597830536L;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/BasicSchemeFactory.java b/httpclient/src/main/java/org/apache/http/impl/auth/BasicSchemeFactory.java
+index 5409a77..ee7193e 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/BasicSchemeFactory.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/BasicSchemeFactory.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.auth;
+
+ import java.nio.charset.Charset;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthSchemeFactory;
+ import org.apache.http.auth.AuthSchemeProvider;
+@@ -42,7 +41,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @SuppressWarnings("deprecation")
+ public class BasicSchemeFactory implements AuthSchemeFactory, AuthSchemeProvider {
+
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java b/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java
+index a7607e3..1e3c62f 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java
+@@ -43,7 +43,6 @@ import org.apache.http.Header;
+ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpEntityEnclosingRequest;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.AuthenticationException;
+ import org.apache.http.auth.ChallengeState;
+@@ -72,7 +71,6 @@ import org.apache.http.util.EncodingUtils;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class DigestScheme extends RFC2617Scheme {
+
+ private static final long serialVersionUID = 3883908186234566916L;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/DigestSchemeFactory.java b/httpclient/src/main/java/org/apache/http/impl/auth/DigestSchemeFactory.java
+index 67a4e9e..be277ea 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/DigestSchemeFactory.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/DigestSchemeFactory.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.auth;
+
+ import java.nio.charset.Charset;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthSchemeFactory;
+ import org.apache.http.auth.AuthSchemeProvider;
+@@ -42,7 +41,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ @SuppressWarnings("deprecation")
+ public class DigestSchemeFactory implements AuthSchemeFactory, AuthSchemeProvider {
+
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/GGSSchemeBase.java b/httpclient/src/main/java/org/apache/http/impl/auth/GGSSchemeBase.java
+index ffb22b0..c3b9005 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/GGSSchemeBase.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/GGSSchemeBase.java
+@@ -36,7 +36,6 @@ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.Header;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.AuthenticationException;
+ import org.apache.http.auth.Credentials;
+@@ -59,7 +58,6 @@ import org.ietf.jgss.Oid;
+ /**
+ * @since 4.2
+ */
+-@NotThreadSafe
+ public abstract class GGSSchemeBase extends AuthSchemeBase {
+
+ enum State {
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/KerberosScheme.java b/httpclient/src/main/java/org/apache/http/impl/auth/KerberosScheme.java
+index 9b2ba62..6cbb05b 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/KerberosScheme.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/KerberosScheme.java
+@@ -28,7 +28,6 @@ package org.apache.http.impl.auth;
+
+ import org.apache.http.Header;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AuthenticationException;
+ import org.apache.http.auth.Credentials;
+ import org.apache.http.protocol.HttpContext;
+@@ -41,7 +40,6 @@ import org.ietf.jgss.Oid;
+ *
+ * @since 4.2
+ */
+-@NotThreadSafe
+ public class KerberosScheme extends GGSSchemeBase {
+
+ private static final String KERBEROS_OID = "1.2.840.113554.1.2.2";
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/KerberosSchemeFactory.java b/httpclient/src/main/java/org/apache/http/impl/auth/KerberosSchemeFactory.java
+index 431258e..42ccc2c 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/KerberosSchemeFactory.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/KerberosSchemeFactory.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.auth;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthSchemeFactory;
+ import org.apache.http.auth.AuthSchemeProvider;
+@@ -39,7 +38,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.2
+ */
+-@Immutable
+ @SuppressWarnings("deprecation")
+ public class KerberosSchemeFactory implements AuthSchemeFactory, AuthSchemeProvider {
+
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineException.java b/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineException.java
+index f902ae1..04180c0 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineException.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineException.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.auth;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthenticationException;
+
+ /**
+@@ -35,7 +34,6 @@ import org.apache.http.auth.AuthenticationException;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class NTLMEngineException extends AuthenticationException {
+
+ private static final long serialVersionUID = 6027981323731768824L;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java b/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
+index 890f647..1a7dc8b 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
+@@ -38,7 +38,6 @@ import javax.crypto.spec.SecretKeySpec;
+
+ import org.apache.commons.codec.binary.Base64;
+ import org.apache.http.Consts;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.util.CharsetUtils;
+ import org.apache.http.util.EncodingUtils;
+
+@@ -48,7 +47,6 @@ import org.apache.http.util.EncodingUtils;
+ *
+ * @since 4.1
+ */
+-@NotThreadSafe
+ final class NTLMEngineImpl implements NTLMEngine {
+
+ /** Unicode encoding */
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/NTLMScheme.java b/httpclient/src/main/java/org/apache/http/impl/auth/NTLMScheme.java
+index 1ec4957..cd1a212 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/NTLMScheme.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/NTLMScheme.java
+@@ -28,7 +28,6 @@ package org.apache.http.impl.auth;
+
+ import org.apache.http.Header;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.auth.AuthenticationException;
+ import org.apache.http.auth.Credentials;
+@@ -45,7 +44,6 @@ import org.apache.http.util.CharArrayBuffer;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe
+ public class NTLMScheme extends AuthSchemeBase {
+
+ enum State {
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/NTLMSchemeFactory.java b/httpclient/src/main/java/org/apache/http/impl/auth/NTLMSchemeFactory.java
+index 8e38c82..ece4ef9 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/NTLMSchemeFactory.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/NTLMSchemeFactory.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.auth;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthSchemeFactory;
+ import org.apache.http.auth.AuthSchemeProvider;
+@@ -41,7 +40,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.1
+ */
+-@Immutable
+ @SuppressWarnings("deprecation")
+ public class NTLMSchemeFactory implements AuthSchemeFactory, AuthSchemeProvider {
+
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/RFC2617Scheme.java b/httpclient/src/main/java/org/apache/http/impl/auth/RFC2617Scheme.java
+index 9475c03..d7b6852 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/RFC2617Scheme.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/RFC2617Scheme.java
+@@ -39,7 +39,6 @@ import java.util.Map;
+ import org.apache.http.Consts;
+ import org.apache.http.HeaderElement;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.ChallengeState;
+ import org.apache.http.auth.MalformedChallengeException;
+ import org.apache.http.auth.params.AuthPNames;
+@@ -57,7 +56,6 @@ import org.apache.http.util.CharsetUtils;
+ * @since 4.0
+ */
+ @SuppressWarnings("deprecation")
+-@NotThreadSafe // AuthSchemeBase, params
+ public abstract class RFC2617Scheme extends AuthSchemeBase implements Serializable {
+
+ private static final long serialVersionUID = -2845454858205884623L;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/SPNegoScheme.java b/httpclient/src/main/java/org/apache/http/impl/auth/SPNegoScheme.java
+index 808738b..46ebeb8 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/SPNegoScheme.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/SPNegoScheme.java
+@@ -28,7 +28,6 @@ package org.apache.http.impl.auth;
+
+ import org.apache.http.Header;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AuthenticationException;
+ import org.apache.http.auth.Credentials;
+ import org.apache.http.protocol.HttpContext;
+@@ -42,7 +41,6 @@ import org.ietf.jgss.Oid;
+ *
+ * @since 4.2
+ */
+-@NotThreadSafe
+ public class SPNegoScheme extends GGSSchemeBase {
+
+ private static final String SPNEGO_OID = "1.3.6.1.5.5.2";
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/SPNegoSchemeFactory.java b/httpclient/src/main/java/org/apache/http/impl/auth/SPNegoSchemeFactory.java
+index 42e506d..8388821 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/SPNegoSchemeFactory.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/SPNegoSchemeFactory.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.auth;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthSchemeFactory;
+ import org.apache.http.auth.AuthSchemeProvider;
+@@ -39,7 +38,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.2
+ */
+-@Immutable
+ @SuppressWarnings("deprecation")
+ public class SPNegoSchemeFactory implements AuthSchemeFactory, AuthSchemeProvider {
+
+diff --git a/httpclient/src/main/java/org/apache/http/impl/auth/UnsupportedDigestAlgorithmException.java b/httpclient/src/main/java/org/apache/http/impl/auth/UnsupportedDigestAlgorithmException.java
+index 2d6b6ec..45dacbf 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/auth/UnsupportedDigestAlgorithmException.java
++++ b/httpclient/src/main/java/org/apache/http/impl/auth/UnsupportedDigestAlgorithmException.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.auth;
+
+-import org.apache.http.annotation.Immutable;
+
+ /**
+ * Authentication credentials required to respond to a authentication
+@@ -35,7 +34,6 @@ import org.apache.http.annotation.Immutable;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class UnsupportedDigestAlgorithmException extends RuntimeException {
+
+ private static final long serialVersionUID = 319558534317118022L;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/AbstractResponseHandler.java b/httpclient/src/main/java/org/apache/http/impl/client/AbstractResponseHandler.java
+index 290a88c..c7e31cb 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/AbstractResponseHandler.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/AbstractResponseHandler.java
+@@ -32,7 +32,6 @@ import java.io.IOException;
+ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.StatusLine;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.HttpResponseException;
+ import org.apache.http.client.ResponseHandler;
+ import org.apache.http.util.EntityUtils;
+@@ -50,7 +49,6 @@ import org.apache.http.util.EntityUtils;
+ *
+ * @since 4.4
+ */
+-@Immutable
+ public abstract class AbstractResponseHandler implements ResponseHandler {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/AuthenticationStrategyImpl.java b/httpclient/src/main/java/org/apache/http/impl/client/AuthenticationStrategyImpl.java
+index cd15aea..0c6c869 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/AuthenticationStrategyImpl.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/AuthenticationStrategyImpl.java
+@@ -43,7 +43,6 @@ import org.apache.http.FormattedHeader;
+ import org.apache.http.Header;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthOption;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthSchemeProvider;
+@@ -62,7 +61,6 @@ import org.apache.http.protocol.HttpContext;
+ import org.apache.http.util.Args;
+ import org.apache.http.util.CharArrayBuffer;
+
+-@Immutable
+ abstract class AuthenticationStrategyImpl implements AuthenticationStrategy {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java b/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
+index 97dabb3..d9fcbe5 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
+@@ -38,7 +38,6 @@ import java.util.concurrent.ConcurrentHashMap;
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.HttpHost;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.client.AuthCache;
+ import org.apache.http.conn.SchemePortResolver;
+@@ -56,7 +55,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.1
+ */
+-@ThreadSafe
+ public class BasicAuthCache implements AuthCache {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/BasicCookieStore.java b/httpclient/src/main/java/org/apache/http/impl/client/BasicCookieStore.java
+index 52b76b1..dc5badc 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/BasicCookieStore.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/BasicCookieStore.java
+@@ -33,8 +33,6 @@ import java.util.Iterator;
+ import java.util.List;
+ import java.util.TreeSet;
+
+-import org.apache.http.annotation.GuardedBy;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.CookieStore;
+ import org.apache.http.cookie.Cookie;
+ import org.apache.http.cookie.CookieIdentityComparator;
+@@ -45,12 +43,10 @@ import org.apache.http.cookie.CookieIdentityComparator;
+ *
+ * @since 4.0
+ */
+-@ThreadSafe
+ public class BasicCookieStore implements CookieStore, Serializable {
+
+ private static final long serialVersionUID = -7581093305228232025L;
+
+- @GuardedBy("this")
+ private final TreeSet cookies;
+
+ public BasicCookieStore() {
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/BasicCredentialsProvider.java b/httpclient/src/main/java/org/apache/http/impl/client/BasicCredentialsProvider.java
+index 352bbfd..ad68aaf 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/BasicCredentialsProvider.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/BasicCredentialsProvider.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.client;
+ import java.util.Map;
+ import java.util.concurrent.ConcurrentHashMap;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.auth.AuthScope;
+ import org.apache.http.auth.Credentials;
+ import org.apache.http.client.CredentialsProvider;
+@@ -40,7 +39,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.0
+ */
+-@ThreadSafe
+ public class BasicCredentialsProvider implements CredentialsProvider {
+
+ private final ConcurrentHashMap credMap;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/BasicResponseHandler.java b/httpclient/src/main/java/org/apache/http/impl/client/BasicResponseHandler.java
+index 76766ea..90e22f0 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/BasicResponseHandler.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/BasicResponseHandler.java
+@@ -31,7 +31,6 @@ import java.io.IOException;
+
+ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.HttpResponseException;
+ import org.apache.http.util.EntityUtils;
+
+@@ -48,7 +47,6 @@ import org.apache.http.util.EntityUtils;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class BasicResponseHandler extends AbstractResponseHandler {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/CloseableHttpClient.java b/httpclient/src/main/java/org/apache/http/impl/client/CloseableHttpClient.java
+index 16dfae2..903382e 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/CloseableHttpClient.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/CloseableHttpClient.java
+@@ -36,7 +36,6 @@ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.ClientProtocolException;
+ import org.apache.http.client.HttpClient;
+ import org.apache.http.client.ResponseHandler;
+@@ -52,7 +51,6 @@ import org.apache.http.util.EntityUtils;
+ *
+ * @since 4.3
+ */
+-@ThreadSafe
+ public abstract class CloseableHttpClient implements HttpClient, Closeable {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/DefaultConnectionKeepAliveStrategy.java b/httpclient/src/main/java/org/apache/http/impl/client/DefaultConnectionKeepAliveStrategy.java
+index 6e757d1..d52fe94 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/DefaultConnectionKeepAliveStrategy.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/DefaultConnectionKeepAliveStrategy.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.client;
+ import org.apache.http.HeaderElement;
+ import org.apache.http.HeaderElementIterator;
+ import org.apache.http.HttpResponse;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.ConnectionKeepAliveStrategy;
+ import org.apache.http.message.BasicHeaderElementIterator;
+ import org.apache.http.protocol.HTTP;
+@@ -45,7 +44,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class DefaultConnectionKeepAliveStrategy implements ConnectionKeepAliveStrategy {
+
+ public static final DefaultConnectionKeepAliveStrategy INSTANCE = new DefaultConnectionKeepAliveStrategy();
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpRequestRetryHandler.java b/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpRequestRetryHandler.java
+index b647cd3..c13a4db 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpRequestRetryHandler.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpRequestRetryHandler.java
+@@ -40,7 +40,6 @@ import javax.net.ssl.SSLException;
+
+ import org.apache.http.HttpEntityEnclosingRequest;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.HttpRequestRetryHandler;
+ import org.apache.http.client.methods.HttpUriRequest;
+ import org.apache.http.client.protocol.HttpClientContext;
+@@ -52,7 +51,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class DefaultHttpRequestRetryHandler implements HttpRequestRetryHandler {
+
+ public static final DefaultHttpRequestRetryHandler INSTANCE = new DefaultHttpRequestRetryHandler();
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java b/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java
+index 47249ee..09aebe6 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java
+@@ -39,7 +39,6 @@ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.CircularRedirectException;
+ import org.apache.http.client.RedirectStrategy;
+ import org.apache.http.client.config.RequestConfig;
+@@ -70,7 +69,6 @@ import org.apache.http.util.TextUtils;
+ * @see LaxRedirectStrategy
+ * @since 4.1
+ */
+-@Immutable
+ public class DefaultRedirectStrategy implements RedirectStrategy {
+
+ private final Log log = LogFactory.getLog(getClass());
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/DefaultServiceUnavailableRetryStrategy.java b/httpclient/src/main/java/org/apache/http/impl/client/DefaultServiceUnavailableRetryStrategy.java
+index f007207..7b9484f 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/DefaultServiceUnavailableRetryStrategy.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/DefaultServiceUnavailableRetryStrategy.java
+@@ -29,7 +29,6 @@ package org.apache.http.impl.client;
+
+ import org.apache.http.HttpResponse;
+ import org.apache.http.HttpStatus;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.ServiceUnavailableRetryStrategy;
+ import org.apache.http.protocol.HttpContext;
+ import org.apache.http.util.Args;
+@@ -41,7 +40,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.2
+ */
+-@Immutable
+ public class DefaultServiceUnavailableRetryStrategy implements ServiceUnavailableRetryStrategy {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/DefaultUserTokenHandler.java b/httpclient/src/main/java/org/apache/http/impl/client/DefaultUserTokenHandler.java
+index e2a43c4..74a896b 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/DefaultUserTokenHandler.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/DefaultUserTokenHandler.java
+@@ -31,7 +31,6 @@ import java.security.Principal;
+ import javax.net.ssl.SSLSession;
+
+ import org.apache.http.HttpConnection;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AuthScheme;
+ import org.apache.http.auth.AuthState;
+ import org.apache.http.auth.Credentials;
+@@ -54,7 +53,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.0
+ */
+-@Immutable
+ public class DefaultUserTokenHandler implements UserTokenHandler {
+
+ public static final DefaultUserTokenHandler INSTANCE = new DefaultUserTokenHandler();
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/EntityEnclosingRequestWrapper.java b/httpclient/src/main/java/org/apache/http/impl/client/EntityEnclosingRequestWrapper.java
+index 15aedd5..061ae3f 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/EntityEnclosingRequestWrapper.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/EntityEnclosingRequestWrapper.java
+@@ -35,7 +35,6 @@ import org.apache.http.Header;
+ import org.apache.http.HttpEntity;
+ import org.apache.http.HttpEntityEnclosingRequest;
+ import org.apache.http.ProtocolException;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.entity.HttpEntityWrapper;
+ import org.apache.http.protocol.HTTP;
+
+@@ -53,7 +52,6 @@ import org.apache.http.protocol.HTTP;
+ * @deprecated (4.3) do not use.
+ */
+ @Deprecated
+-@NotThreadSafe // e.g. [gs]etEntity()
+ public class EntityEnclosingRequestWrapper extends RequestWrapper
+ implements HttpEntityEnclosingRequest {
+
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/FutureRequestExecutionService.java b/httpclient/src/main/java/org/apache/http/impl/client/FutureRequestExecutionService.java
+index 0fcfd4d..e418d2f 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/FutureRequestExecutionService.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/FutureRequestExecutionService.java
+@@ -31,7 +31,6 @@ import java.io.IOException;
+ import java.util.concurrent.ExecutorService;
+ import java.util.concurrent.atomic.AtomicBoolean;
+
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.HttpClient;
+ import org.apache.http.client.ResponseHandler;
+ import org.apache.http.client.methods.HttpUriRequest;
+@@ -42,7 +41,6 @@ import org.apache.http.protocol.HttpContext;
+ * HttpAsyncClientWithFuture wraps calls to execute with a {@link HttpRequestFutureTask}
+ * and schedules them using the provided executor service. Scheduled calls may be cancelled.
+ */
+-@ThreadSafe
+ public class FutureRequestExecutionService implements Closeable {
+
+ private final HttpClient httpclient;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java b/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java
+index dab3ab1..507f7d3 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java
+@@ -47,7 +47,6 @@ import org.apache.http.Header;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequestInterceptor;
+ import org.apache.http.HttpResponseInterceptor;
+-import org.apache.http.annotation.NotThreadSafe;
+ import org.apache.http.auth.AuthSchemeProvider;
+ import org.apache.http.client.AuthenticationStrategy;
+ import org.apache.http.client.BackoffManager;
+@@ -153,7 +152,6 @@ import org.apache.http.util.VersionInfo;
+ *
+ * @since 4.3
+ */
+-@NotThreadSafe
+ public class HttpClientBuilder {
+
+ private HttpRequestExecutor requestExec;
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/HttpClients.java b/httpclient/src/main/java/org/apache/http/impl/client/HttpClients.java
+index 569b047..c43b460 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/HttpClients.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/HttpClients.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.client;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.conn.HttpClientConnectionManager;
+ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+
+@@ -35,7 +34,6 @@ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+ * Factory methods for {@link CloseableHttpClient} instances.
+ * @since 4.3
+ */
+-@Immutable
+ public class HttpClients {
+
+ private HttpClients() {
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/InternalHttpClient.java b/httpclient/src/main/java/org/apache/http/impl/client/InternalHttpClient.java
+index 32bb5e0..878730c 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/InternalHttpClient.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/InternalHttpClient.java
+@@ -37,7 +37,6 @@ import org.apache.commons.logging.LogFactory;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.auth.AuthSchemeProvider;
+ import org.apache.http.auth.AuthState;
+ import org.apache.http.client.ClientProtocolException;
+@@ -72,7 +71,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.3
+ */
+-@ThreadSafe
+ @SuppressWarnings("deprecation")
+ class InternalHttpClient extends CloseableHttpClient implements Configurable {
+
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/LaxRedirectStrategy.java b/httpclient/src/main/java/org/apache/http/impl/client/LaxRedirectStrategy.java
+index 04aa87f..67cddaf 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/LaxRedirectStrategy.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/LaxRedirectStrategy.java
+@@ -27,7 +27,6 @@
+
+ package org.apache.http.impl.client;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.methods.HttpDelete;
+ import org.apache.http.client.methods.HttpGet;
+ import org.apache.http.client.methods.HttpHead;
+@@ -41,7 +40,6 @@ import org.apache.http.client.methods.HttpPost;
+ *
+ * @since 4.2
+ */
+-@Immutable
+ public class LaxRedirectStrategy extends DefaultRedirectStrategy {
+
+ /**
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/MinimalHttpClient.java b/httpclient/src/main/java/org/apache/http/impl/client/MinimalHttpClient.java
+index 6d1ead7..4e9e029 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/MinimalHttpClient.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/MinimalHttpClient.java
+@@ -33,7 +33,6 @@ import java.util.concurrent.TimeUnit;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpHost;
+ import org.apache.http.HttpRequest;
+-import org.apache.http.annotation.ThreadSafe;
+ import org.apache.http.client.ClientProtocolException;
+ import org.apache.http.client.config.RequestConfig;
+ import org.apache.http.client.methods.CloseableHttpResponse;
+@@ -61,7 +60,6 @@ import org.apache.http.util.Args;
+ *
+ * @since 4.3
+ */
+-@ThreadSafe
+ @SuppressWarnings("deprecation")
+ class MinimalHttpClient extends CloseableHttpClient {
+
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/NoopUserTokenHandler.java b/httpclient/src/main/java/org/apache/http/impl/client/NoopUserTokenHandler.java
+index 9d21a6b..368c19f 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/NoopUserTokenHandler.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/NoopUserTokenHandler.java
+@@ -26,7 +26,6 @@
+ */
+ package org.apache.http.impl.client;
+
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.client.UserTokenHandler;
+ import org.apache.http.protocol.HttpContext;
+
+@@ -35,7 +34,6 @@ import org.apache.http.protocol.HttpContext;
+ *
+ * @since 4.3
+ */
+-@Immutable
+ public class NoopUserTokenHandler implements UserTokenHandler {
+
+ public static final NoopUserTokenHandler INSTANCE = new NoopUserTokenHandler();
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/ProxyAuthenticationStrategy.java b/httpclient/src/main/java/org/apache/http/impl/client/ProxyAuthenticationStrategy.java
+index 49e6e91..0c0c21d 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/ProxyAuthenticationStrategy.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/ProxyAuthenticationStrategy.java
+@@ -30,7 +30,6 @@ package org.apache.http.impl.client;
+ import java.util.Collection;
+
+ import org.apache.http.HttpStatus;
+-import org.apache.http.annotation.Immutable;
+ import org.apache.http.auth.AUTH;
+ import org.apache.http.client.config.RequestConfig;
+
+@@ -40,7 +39,6 @@ import org.apache.http.client.config.RequestConfig;
+ *
+ * @since 4.2
+ */
+-@Immutable
+ public class ProxyAuthenticationStrategy extends AuthenticationStrategyImpl {
+
+ public static final ProxyAuthenticationStrategy INSTANCE = new ProxyAuthenticationStrategy();
+diff --git a/httpclient/src/main/java/org/apache/http/impl/client/RedirectLocations.java b/httpclient/src/main/java/org/apache/http/impl/client/RedirectLocations.java
+index e0d4464..a00f682 100644
+--- a/httpclient/src/main/java/org/apache/http/impl/client/RedirectLocations.java
++++ b/httpclient/src/main/java/org/apache/http/impl/client/RedirectLocations.java
+@@ -35,7 +35,6 @@ import java.util.Iterator;
+ import java.util.List;
+ import java.util.Set;
+
+-import org.apache.http.annotation.NotThreadSafe;
+
+ /**
+ * This class represents a collection of {@link java.net.URI}s used
+@@ -43,7 +42,6 @@ import org.apache.http.annotation.NotThreadSafe;
+ *
+ * @since 4.0
+ */
+-@NotThreadSafe // HashSet/ArrayList are not synch.
+ public class RedirectLocations extends AbstractList