Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 6B1C9200C0E for ; Tue, 27 Dec 2016 20:48:20 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 698D6160B1D; Tue, 27 Dec 2016 19:48:20 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id BDCFA160B43 for ; Tue, 27 Dec 2016 20:48:16 +0100 (CET) Received: (qmail 14158 invoked by uid 500); 27 Dec 2016 19:48:16 -0000 Mailing-List: contact commits-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list commits@hc.apache.org Received: (qmail 13878 invoked by uid 99); 27 Dec 2016 19:48:15 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Dec 2016 19:48:15 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id D62B23A3C69 for ; Tue, 27 Dec 2016 19:48:13 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1776187 [12/21] - in /httpcomponents/httpclient/trunk: ./ httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/ httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ httpclient5-cache/src/test/java/org/apache/h... Date: Tue, 27 Dec 2016 19:48:10 -0000 To: commits@hc.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20161227194813.D62B23A3C69@svn01-us-west.apache.org> archived-at: Tue, 27 Dec 2016 19:48:20 -0000 Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/RouteTracker.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/RouteTracker.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/RouteTracker.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/RouteTracker.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,6 @@ package org.apache.hc.client5.http; import java.net.InetAddress; -import org.apache.hc.core5.annotation.NotThreadSafe; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.util.Args; import org.apache.hc.core5.util.Asserts; @@ -40,7 +39,6 @@ import org.apache.hc.core5.util.LangUtil * * @since 4.0 */ -@NotThreadSafe public final class RouteTracker implements RouteInfo, Cloneable { /** The target host to connect to. */ Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/UnsupportedSchemeException.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/UnsupportedSchemeException.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/UnsupportedSchemeException.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/UnsupportedSchemeException.java Tue Dec 27 19:48:07 2016 @@ -29,14 +29,11 @@ package org.apache.hc.client5.http; import java.io.IOException; -import org.apache.hc.core5.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; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthChallenge.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthChallenge.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthChallenge.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthChallenge.java Tue Dec 27 19:48:07 2016 @@ -31,7 +31,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.NameValuePair; import org.apache.hc.core5.util.Args; @@ -41,7 +42,7 @@ import org.apache.hc.core5.util.Args; * * @since 5.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public final class AuthChallenge { private final String scheme; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthExchange.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthExchange.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthExchange.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthExchange.java Tue Dec 27 19:48:07 2016 @@ -28,7 +28,6 @@ package org.apache.hc.client5.http.auth; import java.util.Queue; -import org.apache.hc.core5.annotation.NotThreadSafe; import org.apache.hc.core5.util.Args; /** @@ -37,7 +36,6 @@ import org.apache.hc.core5.util.Args; * * @since 4.5 */ -@NotThreadSafe public class AuthExchange { public enum State { Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthScope.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthScope.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthScope.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthScope.java Tue Dec 27 19:48:07 2016 @@ -28,7 +28,8 @@ package org.apache.hc.client5.http.auth; import java.util.Locale; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.util.Args; import org.apache.hc.core5.util.LangUtils; @@ -42,7 +43,7 @@ import org.apache.hc.core5.util.LangUtil *

* @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class AuthScope { /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthenticationException.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthenticationException.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthenticationException.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthenticationException.java Tue Dec 27 19:48:07 2016 @@ -26,7 +26,6 @@ */ package org.apache.hc.client5.http.auth; -import org.apache.hc.core5.annotation.Immutable; import org.apache.hc.core5.http.ProtocolException; /** @@ -35,7 +34,6 @@ import org.apache.hc.core5.http.Protocol * * @since 4.0 */ -@Immutable public class AuthenticationException extends ProtocolException { private static final long serialVersionUID = -6794031905674764776L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/BasicUserPrincipal.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/BasicUserPrincipal.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/BasicUserPrincipal.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/BasicUserPrincipal.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,8 @@ package org.apache.hc.client5.http.auth; import java.io.Serializable; import java.security.Principal; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.util.Args; import org.apache.hc.core5.util.LangUtils; @@ -38,7 +39,7 @@ import org.apache.hc.core5.util.LangUtil * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public final class BasicUserPrincipal implements Principal, Serializable { private static final long serialVersionUID = -2266305184969850467L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/InvalidCredentialsException.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/InvalidCredentialsException.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/InvalidCredentialsException.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/InvalidCredentialsException.java Tue Dec 27 19:48:07 2016 @@ -26,7 +26,8 @@ */ package org.apache.hc.client5.http.auth; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; /** * Authentication credentials required to respond to a authentication @@ -35,7 +36,7 @@ import org.apache.hc.core5.annotation.Im * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class InvalidCredentialsException extends AuthenticationException { private static final long serialVersionUID = -4834003835215460648L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/KerberosCredentials.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/KerberosCredentials.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/KerberosCredentials.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/KerberosCredentials.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,8 @@ package org.apache.hc.client5.http.auth; import java.io.Serializable; import java.security.Principal; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.ietf.jgss.GSSCredential; /** @@ -37,7 +38,7 @@ import org.ietf.jgss.GSSCredential; * * @since 4.4 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class KerberosCredentials implements Credentials, Serializable { private static final long serialVersionUID = 487421613855550713L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/MalformedChallengeException.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/MalformedChallengeException.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/MalformedChallengeException.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/MalformedChallengeException.java Tue Dec 27 19:48:07 2016 @@ -26,7 +26,6 @@ */ package org.apache.hc.client5.http.auth; -import org.apache.hc.core5.annotation.Immutable; import org.apache.hc.core5.http.ProtocolException; /** @@ -36,7 +35,6 @@ import org.apache.hc.core5.http.Protocol * * @since 4.0 */ -@Immutable public class MalformedChallengeException extends ProtocolException { private static final long serialVersionUID = 814586927989932284L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/NTCredentials.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/NTCredentials.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/NTCredentials.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/NTCredentials.java Tue Dec 27 19:48:07 2016 @@ -30,7 +30,8 @@ import java.io.Serializable; import java.security.Principal; import java.util.Locale; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.util.Args; import org.apache.hc.core5.util.LangUtils; @@ -40,7 +41,7 @@ import org.apache.hc.core5.util.LangUtil * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class NTCredentials implements Credentials, Serializable { private static final long serialVersionUID = -7385699315228907265L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/NTUserPrincipal.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/NTUserPrincipal.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/NTUserPrincipal.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/NTUserPrincipal.java Tue Dec 27 19:48:07 2016 @@ -30,7 +30,8 @@ import java.io.Serializable; import java.security.Principal; import java.util.Locale; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.util.Args; import org.apache.hc.core5.util.LangUtils; @@ -39,7 +40,7 @@ import org.apache.hc.core5.util.LangUtil * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class NTUserPrincipal implements Principal, Serializable { private static final long serialVersionUID = -6870169797924406894L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/UsernamePasswordCredentials.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/UsernamePasswordCredentials.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/UsernamePasswordCredentials.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/UsernamePasswordCredentials.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,8 @@ package org.apache.hc.client5.http.auth; import java.io.Serializable; import java.security.Principal; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.util.Args; import org.apache.hc.core5.util.LangUtils; @@ -39,7 +40,7 @@ import org.apache.hc.core5.util.LangUtil * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class UsernamePasswordCredentials implements Credentials, Serializable { private static final long serialVersionUID = 243343858802739403L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/util/ByteArrayBuilder.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/util/ByteArrayBuilder.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/util/ByteArrayBuilder.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/auth/util/ByteArrayBuilder.java Tue Dec 27 19:48:07 2016 @@ -35,14 +35,15 @@ import java.nio.charset.CoderResult; import java.nio.charset.CodingErrorAction; import java.nio.charset.StandardCharsets; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; /** * Builder class for sequences of bytes. * * @since 5.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class ByteArrayBuilder { private CharsetEncoder charsetEncoder; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/AuthSchemes.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/AuthSchemes.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/AuthSchemes.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/AuthSchemes.java Tue Dec 27 19:48:07 2016 @@ -27,14 +27,15 @@ package org.apache.hc.client5.http.config; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; /** * Standard authentication schemes supported by HttpClient. * * @since 4.3 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public final class AuthSchemes { /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/CookieSpecs.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/CookieSpecs.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/CookieSpecs.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/CookieSpecs.java Tue Dec 27 19:48:07 2016 @@ -27,14 +27,15 @@ package org.apache.hc.client5.http.config; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; /** * Standard cookie specifications supported by HttpClient. * * @since 4.3 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public final class CookieSpecs { /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/RequestConfig.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/RequestConfig.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/RequestConfig.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/config/RequestConfig.java Tue Dec 27 19:48:07 2016 @@ -31,13 +31,14 @@ import java.net.InetAddress; import java.util.Collection; import java.util.concurrent.TimeUnit; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.HttpHost; /** * Immutable class encapsulating request configuration items. */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class RequestConfig implements Cloneable { private static final int DEFAULT_CONNECTION_REQUEST_TIMEOUT = (int) TimeUnit.MILLISECONDS.convert(3, TimeUnit.MINUTES); @@ -65,7 +66,7 @@ public class RequestConfig implements Cl * Intended for CDI compatibility */ protected RequestConfig() { - this(false, null, null, false, null, false, false, false, 0, false, null, null, + this(false, null, null, null, false, false, 0, false, null, null, DEFAULT_CONNECTION_REQUEST_TIMEOUT, DEFAULT_CONNECT_TIMEOUT, DEFAULT_SOCKET_TIMEOUT, false); } @@ -73,10 +74,8 @@ public class RequestConfig implements Cl final boolean expectContinueEnabled, final HttpHost proxy, final InetAddress localAddress, - final boolean staleConnectionCheckEnabled, final String cookieSpec, final boolean redirectsEnabled, - final boolean relativeRedirectsAllowed, final boolean circularRedirectsAllowed, final int maxRedirects, final boolean authenticationEnabled, @@ -343,10 +342,8 @@ public class RequestConfig implements Cl private boolean expectContinueEnabled; private HttpHost proxy; private InetAddress localAddress; - private boolean staleConnectionCheckEnabled; private String cookieSpec; private boolean redirectsEnabled; - private boolean relativeRedirectsAllowed; private boolean circularRedirectsAllowed; private int maxRedirects; private boolean authenticationEnabled; @@ -359,10 +356,8 @@ public class RequestConfig implements Cl Builder() { super(); - this.staleConnectionCheckEnabled = false; this.redirectsEnabled = true; this.maxRedirects = 50; - this.relativeRedirectsAllowed = true; this.authenticationEnabled = true; this.connectionRequestTimeout = DEFAULT_CONNECTION_REQUEST_TIMEOUT; this.connectTimeout = DEFAULT_CONNECT_TIMEOUT; @@ -395,11 +390,6 @@ public class RequestConfig implements Cl return this; } - public Builder setRelativeRedirectsAllowed(final boolean relativeRedirectsAllowed) { - this.relativeRedirectsAllowed = relativeRedirectsAllowed; - return this; - } - public Builder setCircularRedirectsAllowed(final boolean circularRedirectsAllowed) { this.circularRedirectsAllowed = circularRedirectsAllowed; return this; @@ -445,20 +435,13 @@ public class RequestConfig implements Cl return this; } - public Builder setStaleConnectionCheckEnabled(final boolean staleConnectionCheckEnabled) { - this.staleConnectionCheckEnabled = staleConnectionCheckEnabled; - return this; - } - public RequestConfig build() { return new RequestConfig( expectContinueEnabled, proxy, localAddress, - staleConnectionCheckEnabled, cookieSpec, redirectsEnabled, - relativeRedirectsAllowed, circularRedirectsAllowed, maxRedirects, authenticationEnabled, Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/BasicCookieStore.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/BasicCookieStore.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/BasicCookieStore.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/BasicCookieStore.java Tue Dec 27 19:48:07 2016 @@ -33,8 +33,8 @@ import java.util.Iterator; import java.util.List; import java.util.TreeSet; -import org.apache.hc.core5.annotation.GuardedBy; -import org.apache.hc.core5.annotation.ThreadSafe; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; /** * Default implementation of {@link CookieStore} @@ -42,12 +42,11 @@ import org.apache.hc.core5.annotation.Th * * @since 4.0 */ -@ThreadSafe +@Contract(threading = ThreadingBehavior.SAFE) public class BasicCookieStore implements CookieStore, Serializable { private static final long serialVersionUID = -7581093305228232025L; - @GuardedBy("this") private final TreeSet cookies; public BasicCookieStore() { Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieIdentityComparator.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieIdentityComparator.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieIdentityComparator.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieIdentityComparator.java Tue Dec 27 19:48:07 2016 @@ -30,7 +30,8 @@ package org.apache.hc.client5.http.cooki import java.io.Serializable; import java.util.Comparator; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; /** * This cookie comparator can be used to compare identity of cookies. @@ -40,7 +41,7 @@ import org.apache.hc.core5.annotation.Im * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class CookieIdentityComparator implements Serializable, Comparator { private static final long serialVersionUID = 4466565437490631532L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieOrigin.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieOrigin.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieOrigin.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieOrigin.java Tue Dec 27 19:48:07 2016 @@ -28,7 +28,8 @@ package org.apache.hc.client5.http.cooki import java.util.Locale; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.util.Args; import org.apache.hc.core5.util.TextUtils; @@ -38,7 +39,7 @@ import org.apache.hc.core5.util.TextUtil * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public final class CookieOrigin { private final String host; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookiePathComparator.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookiePathComparator.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookiePathComparator.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookiePathComparator.java Tue Dec 27 19:48:07 2016 @@ -30,7 +30,8 @@ package org.apache.hc.client5.http.cooki import java.io.Serializable; import java.util.Comparator; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; /** * This cookie comparator ensures that multiple cookies satisfying @@ -47,7 +48,7 @@ import org.apache.hc.core5.annotation.Im * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class CookiePathComparator implements Serializable, Comparator { public static final CookiePathComparator INSTANCE = new CookiePathComparator(); Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookiePriorityComparator.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookiePriorityComparator.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookiePriorityComparator.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookiePriorityComparator.java Tue Dec 27 19:48:07 2016 @@ -30,7 +30,8 @@ package org.apache.hc.client5.http.cooki import java.util.Comparator; import java.util.Date; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; /** * This cookie comparator ensures that cookies with longer paths take precedence over @@ -39,7 +40,7 @@ import org.apache.hc.core5.annotation.Im * * @since 4.4 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class CookiePriorityComparator implements Comparator { public static final CookiePriorityComparator INSTANCE = new CookiePriorityComparator(); Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieRestrictionViolationException.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieRestrictionViolationException.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieRestrictionViolationException.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/CookieRestrictionViolationException.java Tue Dec 27 19:48:07 2016 @@ -27,15 +27,12 @@ package org.apache.hc.client5.http.cookie; -import org.apache.hc.core5.annotation.Immutable; - /** * Signals that a cookie violates a restriction imposed by the cookie * specification. * * @since 4.1 */ -@Immutable public class CookieRestrictionViolationException extends MalformedCookieException { private static final long serialVersionUID = 7371235577078589013L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/MalformedCookieException.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/MalformedCookieException.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/MalformedCookieException.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/cookie/MalformedCookieException.java Tue Dec 27 19:48:07 2016 @@ -27,7 +27,6 @@ package org.apache.hc.client5.http.cookie; -import org.apache.hc.core5.annotation.Immutable; import org.apache.hc.core5.http.ProtocolException; /** @@ -37,7 +36,6 @@ import org.apache.hc.core5.http.Protocol * * @since 4.0 */ -@Immutable public class MalformedCookieException extends ProtocolException { private static final long serialVersionUID = -6695462944287282185L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/DecompressingEntity.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/DecompressingEntity.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/DecompressingEntity.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/DecompressingEntity.java Tue Dec 27 19:48:07 2016 @@ -31,7 +31,7 @@ import java.io.InputStream; import java.io.OutputStream; import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.core5.http.entity.HttpEntityWrapper; +import org.apache.hc.core5.http.io.entity.HttpEntityWrapper; import org.apache.hc.core5.util.Args; /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/DeflateDecompressingEntity.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/DeflateDecompressingEntity.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/DeflateDecompressingEntity.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/DeflateDecompressingEntity.java Tue Dec 27 19:48:07 2016 @@ -32,7 +32,7 @@ import java.io.InputStream; import org.apache.hc.core5.http.HttpEntity; /** - * {@link org.apache.hc.core5.http.entity.HttpEntityWrapper} responsible for + * {@link org.apache.hc.core5.http.io.entity.HttpEntityWrapper} responsible for * handling deflate Content Coded responses. In RFC2616 terms, {@code deflate} * means a {@code zlib} stream as defined in RFC1950. Some server * implementations have misinterpreted RFC2616 to mean that a Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/EntityBuilder.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/EntityBuilder.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/EntityBuilder.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/EntityBuilder.java Tue Dec 27 19:48:07 2016 @@ -33,17 +33,16 @@ import java.io.Serializable; import java.util.Arrays; import java.util.List; -import org.apache.hc.core5.annotation.NotThreadSafe; import org.apache.hc.core5.http.HttpEntity; import org.apache.hc.core5.http.NameValuePair; -import org.apache.hc.core5.http.entity.AbstractHttpEntity; -import org.apache.hc.core5.http.entity.BasicHttpEntity; -import org.apache.hc.core5.http.entity.ByteArrayEntity; -import org.apache.hc.core5.http.entity.ContentType; -import org.apache.hc.core5.http.entity.FileEntity; -import org.apache.hc.core5.http.entity.InputStreamEntity; -import org.apache.hc.core5.http.entity.SerializableEntity; -import org.apache.hc.core5.http.entity.StringEntity; +import org.apache.hc.core5.http.io.entity.AbstractHttpEntity; +import org.apache.hc.core5.http.io.entity.BasicHttpEntity; +import org.apache.hc.core5.http.io.entity.ByteArrayEntity; +import org.apache.hc.core5.http.ContentType; +import org.apache.hc.core5.http.io.entity.FileEntity; +import org.apache.hc.core5.http.io.entity.InputStreamEntity; +import org.apache.hc.core5.http.io.entity.SerializableEntity; +import org.apache.hc.core5.http.io.entity.StringEntity; /** * Builder for {@link HttpEntity} instances. @@ -63,7 +62,6 @@ import org.apache.hc.core5.http.entity.S * * @since 4.3 */ -@NotThreadSafe public class EntityBuilder { private String text; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/GzipCompressingEntity.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/GzipCompressingEntity.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/GzipCompressingEntity.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/GzipCompressingEntity.java Tue Dec 27 19:48:07 2016 @@ -59,7 +59,7 @@ import java.io.OutputStream; import java.util.zip.GZIPOutputStream; import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.core5.http.entity.HttpEntityWrapper; +import org.apache.hc.core5.http.io.entity.HttpEntityWrapper; import org.apache.hc.core5.util.Args; /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/GzipDecompressingEntity.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/GzipDecompressingEntity.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/GzipDecompressingEntity.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/GzipDecompressingEntity.java Tue Dec 27 19:48:07 2016 @@ -33,7 +33,7 @@ import java.util.zip.GZIPInputStream; import org.apache.hc.core5.http.HttpEntity; /** - * {@link org.apache.hc.core5.http.entity.HttpEntityWrapper} for handling gzip + * {@link org.apache.hc.core5.http.io.entity.HttpEntityWrapper} for handling gzip * Content Coded responses. * * @since 4.1 Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/LazyDecompressingInputStream.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/LazyDecompressingInputStream.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/LazyDecompressingInputStream.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/LazyDecompressingInputStream.java Tue Dec 27 19:48:07 2016 @@ -29,12 +29,9 @@ package org.apache.hc.client5.http.entit import java.io.IOException; import java.io.InputStream; -import org.apache.hc.core5.annotation.NotThreadSafe; - /** * Lazy init InputStream wrapper. */ -@NotThreadSafe class LazyDecompressingInputStream extends InputStream { private final InputStream wrappedStream; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/UrlEncodedFormEntity.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/UrlEncodedFormEntity.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/UrlEncodedFormEntity.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/UrlEncodedFormEntity.java Tue Dec 27 19:48:07 2016 @@ -30,11 +30,10 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.List; -import org.apache.hc.client5.http.utils.URLEncodedUtils; -import org.apache.hc.core5.annotation.NotThreadSafe; +import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.http.NameValuePair; -import org.apache.hc.core5.http.entity.ContentType; -import org.apache.hc.core5.http.entity.StringEntity; +import org.apache.hc.core5.http.io.entity.StringEntity; +import org.apache.hc.core5.net.URLEncodedUtils; /** * An entity composed of a list of url-encoded pairs. @@ -42,7 +41,6 @@ import org.apache.hc.core5.http.entity.S * * @since 4.0 */ -@NotThreadSafe // AbstractHttpEntity is not thread-safe public class UrlEncodedFormEntity extends StringEntity { /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/AbstractContentBody.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/AbstractContentBody.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/AbstractContentBody.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/AbstractContentBody.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,7 @@ package org.apache.hc.client5.http.entit import java.nio.charset.Charset; -import org.apache.hc.core5.http.entity.ContentType; +import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.util.Args; /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/AbstractMultipartForm.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/AbstractMultipartForm.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/AbstractMultipartForm.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/AbstractMultipartForm.java Tue Dec 27 19:48:07 2016 @@ -58,7 +58,7 @@ abstract class AbstractMultipartForm { private static void writeBytes( final ByteArrayBuffer b, final OutputStream out) throws IOException { - out.write(b.buffer(), 0, b.length()); + out.write(b.array(), 0, b.length()); } private static void writeBytes( Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/ByteArrayBody.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/ByteArrayBody.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/ByteArrayBody.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/ByteArrayBody.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,7 @@ package org.apache.hc.client5.http.entit import java.io.IOException; import java.io.OutputStream; -import org.apache.hc.core5.http.entity.ContentType; +import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.util.Args; /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/FileBody.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/FileBody.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/FileBody.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/FileBody.java Tue Dec 27 19:48:07 2016 @@ -33,7 +33,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import org.apache.hc.core5.http.entity.ContentType; +import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.util.Args; /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/FormBodyPartBuilder.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/FormBodyPartBuilder.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/FormBodyPartBuilder.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/FormBodyPartBuilder.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,7 @@ package org.apache.hc.client5.http.entit import java.util.List; -import org.apache.hc.core5.http.entity.ContentType; +import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.util.Args; import org.apache.hc.core5.util.Asserts; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/InputStreamBody.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/InputStreamBody.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/InputStreamBody.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/InputStreamBody.java Tue Dec 27 19:48:07 2016 @@ -31,7 +31,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import org.apache.hc.core5.http.entity.ContentType; +import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.util.Args; /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartEntityBuilder.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartEntityBuilder.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartEntityBuilder.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartEntityBuilder.java Tue Dec 27 19:48:07 2016 @@ -35,9 +35,9 @@ import java.util.Collections; import java.util.List; import java.util.Random; +import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.http.HttpEntity; import org.apache.hc.core5.http.NameValuePair; -import org.apache.hc.core5.http.entity.ContentType; import org.apache.hc.core5.http.message.BasicNameValuePair; import org.apache.hc.core5.util.Args; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartFormEntity.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartFormEntity.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartFormEntity.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartFormEntity.java Tue Dec 27 19:48:07 2016 @@ -32,12 +32,14 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.List; import java.util.Set; +import org.apache.hc.core5.function.Supplier; import org.apache.hc.core5.http.ContentTooLongException; +import org.apache.hc.core5.http.ContentType; +import org.apache.hc.core5.http.Header; import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.core5.http.TrailerSupplier; -import org.apache.hc.core5.http.entity.ContentType; class MultipartFormEntity implements HttpEntity { @@ -108,7 +110,7 @@ class MultipartFormEntity implements Htt } @Override - public TrailerSupplier getTrailers() { + public Supplier> getTrailers() { return null; } @@ -117,4 +119,8 @@ class MultipartFormEntity implements Htt return null; } + @Override + public void close() throws IOException { + } + } Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/StringBody.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/StringBody.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/StringBody.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/StringBody.java Tue Dec 27 19:48:07 2016 @@ -36,7 +36,7 @@ import java.io.Reader; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import org.apache.hc.core5.http.entity.ContentType; +import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.util.Args; /** Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/BasicResponseHandler.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/BasicResponseHandler.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/BasicResponseHandler.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/BasicResponseHandler.java Tue Dec 27 19:48:07 2016 @@ -31,11 +31,12 @@ import java.io.IOException; import org.apache.hc.client5.http.impl.sync.AbstractResponseHandler; import org.apache.hc.client5.http.protocol.ClientProtocolException; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; +import org.apache.hc.core5.http.ClassicHttpResponse; import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.core5.http.HttpResponse; import org.apache.hc.core5.http.ParseException; -import org.apache.hc.core5.http.entity.EntityUtils; +import org.apache.hc.core5.http.io.entity.EntityUtils; /** * A {@link org.apache.hc.client5.http.sync.ResponseHandler} that returns the response body as a String @@ -44,13 +45,13 @@ import org.apache.hc.core5.http.entity.E *

* If this is used with * {@link org.apache.hc.client5.http.sync.HttpClient#execute( - * org.apache.hc.client5.http.methods.HttpUriRequest, org.apache.hc.client5.http.sync.ResponseHandler)}, + * org.apache.hc.core5.http.ClassicHttpRequest, org.apache.hc.client5.http.sync.ResponseHandler)}, * HttpClient may handle redirects (3xx responses) internally. *

* * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class BasicResponseHandler extends AbstractResponseHandler { /** @@ -66,8 +67,7 @@ public class BasicResponseHandler extend } @Override - public String handleResponse( - final HttpResponse response) throws IOException { + public String handleResponse(final ClassicHttpResponse response) throws IOException { return super.handleResponse(response); } Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultConnectionKeepAliveStrategy.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultConnectionKeepAliveStrategy.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultConnectionKeepAliveStrategy.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultConnectionKeepAliveStrategy.java Tue Dec 27 19:48:07 2016 @@ -29,11 +29,12 @@ package org.apache.hc.client5.http.impl; import java.util.Iterator; import org.apache.hc.client5.http.ConnectionKeepAliveStrategy; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.http.message.MessageSupport; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.HeaderElement; import org.apache.hc.core5.http.HeaderElements; import org.apache.hc.core5.http.HttpResponse; -import org.apache.hc.core5.http.message.BasicHeaderElementIterator; import org.apache.hc.core5.http.protocol.HttpContext; import org.apache.hc.core5.util.Args; @@ -46,7 +47,7 @@ import org.apache.hc.core5.util.Args; * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class DefaultConnectionKeepAliveStrategy implements ConnectionKeepAliveStrategy { public static final DefaultConnectionKeepAliveStrategy INSTANCE = new DefaultConnectionKeepAliveStrategy(); @@ -54,8 +55,7 @@ public class DefaultConnectionKeepAliveS @Override public long getKeepAliveDuration(final HttpResponse response, final HttpContext context) { Args.notNull(response, "HTTP response"); - final Iterator it = new BasicHeaderElementIterator( - response.headerIterator(HeaderElements.KEEP_ALIVE)); + final Iterator it = MessageSupport.iterate(response, HeaderElements.KEEP_ALIVE); while (it.hasNext()) { final HeaderElement he = it.next(); final String param = he.getName(); Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultSchemePortResolver.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultSchemePortResolver.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultSchemePortResolver.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultSchemePortResolver.java Tue Dec 27 19:48:07 2016 @@ -28,7 +28,8 @@ package org.apache.hc.client5.http.impl; import org.apache.hc.client5.http.SchemePortResolver; import org.apache.hc.client5.http.UnsupportedSchemeException; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.util.Args; @@ -37,7 +38,7 @@ import org.apache.hc.core5.util.Args; * * @since 4.3 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class DefaultSchemePortResolver implements SchemePortResolver { public static final DefaultSchemePortResolver INSTANCE = new DefaultSchemePortResolver(); Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicAuthCache.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicAuthCache.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicAuthCache.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicAuthCache.java Tue Dec 27 19:48:07 2016 @@ -40,7 +40,8 @@ import org.apache.hc.client5.http.Unsupp import org.apache.hc.client5.http.auth.AuthCache; import org.apache.hc.client5.http.auth.AuthScheme; import org.apache.hc.client5.http.impl.DefaultSchemePortResolver; -import org.apache.hc.core5.annotation.ThreadSafe; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.util.Args; import org.apache.logging.log4j.LogManager; @@ -56,7 +57,7 @@ import org.apache.logging.log4j.Logger; * * @since 4.1 */ -@ThreadSafe +@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL) public class BasicAuthCache implements AuthCache { private final Logger log = LogManager.getLogger(getClass()); Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicScheme.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicScheme.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicScheme.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicScheme.java Tue Dec 27 19:48:07 2016 @@ -32,6 +32,7 @@ import java.io.ObjectOutputStream; import java.io.Serializable; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.nio.charset.UnsupportedCharsetException; import java.security.Principal; import java.util.HashMap; import java.util.List; @@ -47,20 +48,17 @@ import org.apache.hc.client5.http.auth.C import org.apache.hc.client5.http.auth.CredentialsProvider; import org.apache.hc.client5.http.auth.MalformedChallengeException; import org.apache.hc.client5.http.auth.util.ByteArrayBuilder; -import org.apache.hc.core5.annotation.NotThreadSafe; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.http.HttpRequest; import org.apache.hc.core5.http.NameValuePair; import org.apache.hc.core5.http.protocol.HttpContext; import org.apache.hc.core5.util.Args; -import org.apache.hc.core5.util.CharsetUtils; /** * Basic authentication scheme as defined in RFC 2617. * * @since 4.0 */ -@NotThreadSafe public class BasicScheme implements AuthScheme, Serializable { private static final long serialVersionUID = -1931571557597830536L; @@ -184,8 +182,9 @@ public class BasicScheme implements Auth @SuppressWarnings("unchecked") private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); - this.charset = CharsetUtils.get(in.readUTF()); - if (this.charset == null) { + try { + this.charset = Charset.forName(in.readUTF()); + } catch (UnsupportedCharsetException ex) { this.charset = StandardCharsets.US_ASCII; } } Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicSchemeFactory.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicSchemeFactory.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicSchemeFactory.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/BasicSchemeFactory.java Tue Dec 27 19:48:07 2016 @@ -31,7 +31,8 @@ import java.nio.charset.Charset; import org.apache.hc.client5.http.auth.AuthScheme; import org.apache.hc.client5.http.auth.AuthSchemeProvider; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.protocol.HttpContext; /** @@ -40,7 +41,7 @@ import org.apache.hc.core5.http.protocol * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class BasicSchemeFactory implements AuthSchemeProvider { private final Charset charset; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/DigestScheme.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/DigestScheme.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/DigestScheme.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/DigestScheme.java Tue Dec 27 19:48:07 2016 @@ -30,6 +30,7 @@ import java.io.IOException; import java.io.Serializable; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.nio.charset.UnsupportedCharsetException; import java.security.MessageDigest; import java.security.Principal; import java.security.SecureRandom; @@ -51,7 +52,7 @@ import org.apache.hc.client5.http.auth.C import org.apache.hc.client5.http.auth.CredentialsProvider; import org.apache.hc.client5.http.auth.MalformedChallengeException; import org.apache.hc.client5.http.auth.util.ByteArrayBuilder; -import org.apache.hc.core5.annotation.NotThreadSafe; +import org.apache.hc.core5.http.ClassicHttpRequest; import org.apache.hc.core5.http.HttpEntity; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.http.HttpRequest; @@ -61,7 +62,6 @@ import org.apache.hc.core5.http.message. import org.apache.hc.core5.http.protocol.HttpContext; import org.apache.hc.core5.util.Args; import org.apache.hc.core5.util.CharArrayBuffer; -import org.apache.hc.core5.util.CharsetUtils; /** * Digest authentication scheme as defined in RFC 2617. @@ -77,7 +77,6 @@ import org.apache.hc.core5.util.CharsetU * * @since 4.0 */ -@NotThreadSafe public class DigestScheme implements AuthScheme, Serializable { private static final long serialVersionUID = 3883908186234566916L; @@ -160,7 +159,7 @@ public class DigestScheme implements Aut @Override public boolean isChallengeComplete() { final String s = this.paramMap.get("stale"); - return "true".equalsIgnoreCase(s) ? false : this.complete; + return !"true".equalsIgnoreCase(s) && this.complete; } @Override @@ -218,8 +217,8 @@ public class DigestScheme implements Aut private String createDigestResponse(final HttpRequest request) throws AuthenticationException { - final String uri = request.getRequestLine().getUri(); - final String method = request.getRequestLine().getMethod(); + final String uri = request.getPath(); + final String method = request.getMethod(); final String realm = this.paramMap.get("realm"); final String nonce = this.paramMap.get("nonce"); final String opaque = this.paramMap.get("opaque"); @@ -238,7 +237,8 @@ public class DigestScheme implements Aut final String variant = tok.nextToken().trim(); qopset.add(variant.toLowerCase(Locale.ROOT)); } - if (request.getEntity() != null && qopset.contains("auth-int")) { + final HttpEntity entity = request instanceof ClassicHttpRequest ? ((ClassicHttpRequest) request).getEntity() : null; + if (entity != null && qopset.contains("auth-int")) { qop = QOP_AUTH_INT; } else if (qopset.contains("auth")) { qop = QOP_AUTH; @@ -254,8 +254,10 @@ public class DigestScheme implements Aut } final String charsetName = this.paramMap.get("charset"); - Charset charset = charsetName != null ? CharsetUtils.lookup(charsetName) : null; - if (charset == null) { + Charset charset; + try { + charset = charsetName != null ? Charset.forName(charsetName) : StandardCharsets.ISO_8859_1; + } catch (UnsupportedCharsetException ex) { charset = StandardCharsets.ISO_8859_1; } @@ -324,7 +326,7 @@ public class DigestScheme implements Aut a2 = buffer.append(method).append(":").append(uri).toByteArray(); } else if (qop == QOP_AUTH_INT) { // Method ":" digest-uri-value ":" H(entity-body) - final HttpEntity entity = request.getEntity(); + final HttpEntity entity = request instanceof ClassicHttpRequest ? ((ClassicHttpRequest) request).getEntity() : null; if (entity != null && !entity.isRepeatable()) { // If the entity is not repeatable, try falling back onto QOP_AUTH if (qopset.contains("auth")) { Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/DigestSchemeFactory.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/DigestSchemeFactory.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/DigestSchemeFactory.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/DigestSchemeFactory.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,8 @@ package org.apache.hc.client5.http.impl. import org.apache.hc.client5.http.auth.AuthScheme; import org.apache.hc.client5.http.auth.AuthSchemeProvider; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.protocol.HttpContext; /** @@ -38,7 +39,7 @@ import org.apache.hc.core5.http.protocol * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class DigestSchemeFactory implements AuthSchemeProvider { @Override Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/GGSSchemeBase.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/GGSSchemeBase.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/GGSSchemeBase.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/GGSSchemeBase.java Tue Dec 27 19:48:07 2016 @@ -42,7 +42,6 @@ import org.apache.hc.client5.http.auth.C import org.apache.hc.client5.http.auth.InvalidCredentialsException; import org.apache.hc.client5.http.auth.KerberosCredentials; import org.apache.hc.client5.http.auth.MalformedChallengeException; -import org.apache.hc.core5.annotation.NotThreadSafe; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.http.HttpRequest; import org.apache.hc.core5.http.protocol.HttpContext; @@ -59,7 +58,6 @@ import org.ietf.jgss.Oid; /** * @since 4.2 */ -@NotThreadSafe public abstract class GGSSchemeBase implements AuthScheme { enum State { Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/HttpAuthenticator.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/HttpAuthenticator.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/HttpAuthenticator.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/HttpAuthenticator.java Tue Dec 27 19:48:07 2016 @@ -99,7 +99,7 @@ public class HttpAuthenticator { final HttpClientContext clientContext = HttpClientContext.adapt(context); - if (response.getStatusLine().getStatusCode() == challengeCode) { + if (response.getCode() == challengeCode) { this.log.debug("Authentication required"); if (authExchange.getState() == AuthExchange.State.SUCCESS) { clearCache(host, clientContext); Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/KerberosScheme.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/KerberosScheme.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/KerberosScheme.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/KerberosScheme.java Tue Dec 27 19:48:07 2016 @@ -27,7 +27,6 @@ package org.apache.hc.client5.http.impl.auth; import org.apache.hc.client5.http.DnsResolver; -import org.apache.hc.core5.annotation.NotThreadSafe; import org.ietf.jgss.GSSException; import org.ietf.jgss.Oid; @@ -36,7 +35,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"; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/KerberosSchemeFactory.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/KerberosSchemeFactory.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/KerberosSchemeFactory.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/KerberosSchemeFactory.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,8 @@ package org.apache.hc.client5.http.impl. import org.apache.hc.client5.http.DnsResolver; import org.apache.hc.client5.http.auth.AuthScheme; import org.apache.hc.client5.http.auth.AuthSchemeProvider; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.protocol.HttpContext; /** @@ -38,7 +39,7 @@ import org.apache.hc.core5.http.protocol * * @since 4.2 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class KerberosSchemeFactory implements AuthSchemeProvider { private final DnsResolver dnsResolver; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMEngineException.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMEngineException.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMEngineException.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMEngineException.java Tue Dec 27 19:48:07 2016 @@ -27,7 +27,6 @@ package org.apache.hc.client5.http.impl.auth; import org.apache.hc.client5.http.auth.AuthenticationException; -import org.apache.hc.core5.annotation.Immutable; /** * Signals NTLM protocol failure. @@ -35,7 +34,6 @@ import org.apache.hc.core5.annotation.Im * * @since 4.0 */ -@Immutable public class NTLMEngineException extends AuthenticationException { private static final long serialVersionUID = 6027981323731768824L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMEngineImpl.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMEngineImpl.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMEngineImpl.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMEngineImpl.java Tue Dec 27 19:48:07 2016 @@ -39,8 +39,6 @@ import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import org.apache.hc.client5.http.auth.util.ByteArrayBuilder; -import org.apache.hc.core5.annotation.NotThreadSafe; -import org.apache.hc.core5.util.CharsetUtils; /** * Provides an implementation for NTLMv1, NTLMv2, and NTLM2 Session forms of the NTLM @@ -48,11 +46,10 @@ import org.apache.hc.core5.util.CharsetU * * @since 4.1 */ -@NotThreadSafe final class NTLMEngineImpl implements NTLMEngine { /** Unicode encoding */ - private static final Charset UNICODE_LITTLE_UNMARKED = CharsetUtils.lookup("UnicodeLittleUnmarked"); + private static final Charset UNICODE_LITTLE_UNMARKED = Charset.forName("UnicodeLittleUnmarked"); /** Character encoding */ private static final Charset DEFAULT_CHARSET = StandardCharsets.US_ASCII; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMScheme.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMScheme.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMScheme.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMScheme.java Tue Dec 27 19:48:07 2016 @@ -36,7 +36,6 @@ import org.apache.hc.client5.http.auth.C import org.apache.hc.client5.http.auth.CredentialsProvider; import org.apache.hc.client5.http.auth.MalformedChallengeException; import org.apache.hc.client5.http.auth.NTCredentials; -import org.apache.hc.core5.annotation.NotThreadSafe; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.http.HttpRequest; import org.apache.hc.core5.http.protocol.HttpContext; @@ -48,7 +47,6 @@ import org.apache.hc.core5.util.Args; * * @since 4.0 */ -@NotThreadSafe public class NTLMScheme implements AuthScheme { enum State { Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMSchemeFactory.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMSchemeFactory.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMSchemeFactory.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMSchemeFactory.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,8 @@ package org.apache.hc.client5.http.impl. import org.apache.hc.client5.http.auth.AuthScheme; import org.apache.hc.client5.http.auth.AuthSchemeProvider; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.protocol.HttpContext; /** @@ -39,7 +40,7 @@ import org.apache.hc.core5.http.protocol * * @since 4.1 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class NTLMSchemeFactory implements AuthSchemeProvider { @Override Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SPNegoScheme.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SPNegoScheme.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SPNegoScheme.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SPNegoScheme.java Tue Dec 27 19:48:07 2016 @@ -27,7 +27,6 @@ package org.apache.hc.client5.http.impl.auth; import org.apache.hc.client5.http.DnsResolver; -import org.apache.hc.core5.annotation.NotThreadSafe; import org.ietf.jgss.GSSException; import org.ietf.jgss.Oid; @@ -37,7 +36,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"; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SPNegoSchemeFactory.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SPNegoSchemeFactory.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SPNegoSchemeFactory.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SPNegoSchemeFactory.java Tue Dec 27 19:48:07 2016 @@ -29,7 +29,8 @@ package org.apache.hc.client5.http.impl. import org.apache.hc.client5.http.DnsResolver; import org.apache.hc.client5.http.auth.AuthScheme; import org.apache.hc.client5.http.auth.AuthSchemeProvider; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.protocol.HttpContext; /** @@ -38,7 +39,7 @@ import org.apache.hc.core5.http.protocol * * @since 4.2 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public class SPNegoSchemeFactory implements AuthSchemeProvider { private final DnsResolver dnsResolver; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SystemDefaultCredentialsProvider.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SystemDefaultCredentialsProvider.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SystemDefaultCredentialsProvider.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/SystemDefaultCredentialsProvider.java Tue Dec 27 19:48:07 2016 @@ -29,6 +29,8 @@ package org.apache.hc.client5.http.impl. import java.net.Authenticator; import java.net.MalformedURLException; import java.net.PasswordAuthentication; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.util.Locale; import java.util.Map; @@ -41,11 +43,12 @@ import org.apache.hc.client5.http.auth.N import org.apache.hc.client5.http.auth.UsernamePasswordCredentials; import org.apache.hc.client5.http.config.AuthSchemes; import org.apache.hc.client5.http.impl.sync.BasicCredentialsProvider; -import org.apache.hc.core5.annotation.ThreadSafe; +import org.apache.hc.client5.http.protocol.HttpClientContext; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.http.HttpRequest; import org.apache.hc.core5.http.protocol.HttpContext; -import org.apache.hc.core5.http.protocol.HttpCoreContext; import org.apache.hc.core5.util.Args; /** @@ -54,7 +57,7 @@ import org.apache.hc.core5.util.Args; * * @since 4.3 */ -@ThreadSafe +@Contract(threading = ThreadingBehavior.SAFE) public class SystemDefaultCredentialsProvider implements CredentialsStore { private static final Map SCHEME_MAP; @@ -68,7 +71,7 @@ public class SystemDefaultCredentialsPro SCHEME_MAP.put(AuthSchemes.KERBEROS.toUpperCase(Locale.ROOT), "Kerberos"); } - private static String translateScheme(final String key) { + private static String translateAuthScheme(final String key) { if (key == null) { return null; } @@ -94,14 +97,19 @@ public class SystemDefaultCredentialsPro private static PasswordAuthentication getSystemCreds( final AuthScope authscope, final Authenticator.RequestorType requestorType, - final HttpContext context) { + final HttpClientContext context) { final String hostname = authscope.getHost(); final int port = authscope.getPort(); final HttpHost origin = authscope.getOrigin(); - final String protocol = origin != null ? origin.getSchemeName() : - (port == 443 ? "https" : "http"); - - final URL targetHostURL = getTargetHostURL(context); + final String protocol = origin != null ? origin.getSchemeName() : (port == 443 ? "https" : "http"); + final HttpRequest request = context != null ? context.getRequest() : null; + URL targetHostURL; + try { + final URI uri = request != null ? request.getUri() : null; + targetHostURL = uri != null ? uri.toURL() : null; + } catch (URISyntaxException | MalformedURLException ignore) { + targetHostURL = null; + } // use null addr, because the authentication fails if it does not exactly match the expected realm's host return Authenticator.requestPasswordAuthentication( hostname, @@ -109,24 +117,11 @@ public class SystemDefaultCredentialsPro port, protocol, authscope.getRealm(), - translateScheme(authscope.getScheme()), + translateAuthScheme(authscope.getScheme()), targetHostURL, requestorType); } - private static URL getTargetHostURL(final HttpContext context) { - if (context == null) { - return null; - } - final HttpRequest httpRequest = (HttpRequest)context.getAttribute(HttpCoreContext.HTTP_REQUEST); - final String uri = httpRequest.getRequestLine().getUri(); - try { - return new URL(uri); - } catch (final MalformedURLException e) { - return null; - } - } - @Override public Credentials getCredentials(final AuthScope authscope, final HttpContext context) { Args.notNull(authscope, "Auth scope"); @@ -136,9 +131,12 @@ public class SystemDefaultCredentialsPro } final String host = authscope.getHost(); if (host != null) { - PasswordAuthentication systemcreds = getSystemCreds(authscope, Authenticator.RequestorType.SERVER, context); + final HttpClientContext clientContext = context != null ? HttpClientContext.adapt(context) : null; + PasswordAuthentication systemcreds = getSystemCreds( + authscope, Authenticator.RequestorType.SERVER, clientContext); if (systemcreds == null) { - systemcreds = getSystemCreds(authscope, Authenticator.RequestorType.PROXY, context); + systemcreds = getSystemCreds( + authscope, Authenticator.RequestorType.PROXY, clientContext); } if (systemcreds == null) { final String proxyHost = System.getProperty("http.proxyHost"); Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/UnsupportedDigestAlgorithmException.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/UnsupportedDigestAlgorithmException.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/UnsupportedDigestAlgorithmException.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/UnsupportedDigestAlgorithmException.java Tue Dec 27 19:48:07 2016 @@ -26,8 +26,6 @@ */ package org.apache.hc.client5.http.impl.auth; -import org.apache.hc.core5.annotation.Immutable; - /** * Authentication credentials required to respond to a authentication * challenge are invalid @@ -35,7 +33,6 @@ import org.apache.hc.core5.annotation.Im * * @since 4.0 */ -@Immutable public class UnsupportedDigestAlgorithmException extends RuntimeException { private static final long serialVersionUID = 319558534317118022L; Modified: httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/cookie/AbstractCookieAttributeHandler.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/cookie/AbstractCookieAttributeHandler.java?rev=1776187&r1=1776186&r2=1776187&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/cookie/AbstractCookieAttributeHandler.java (original) +++ httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/impl/cookie/AbstractCookieAttributeHandler.java Tue Dec 27 19:48:07 2016 @@ -30,13 +30,14 @@ import org.apache.hc.client5.http.cookie import org.apache.hc.client5.http.cookie.CookieAttributeHandler; import org.apache.hc.client5.http.cookie.CookieOrigin; import org.apache.hc.client5.http.cookie.MalformedCookieException; -import org.apache.hc.core5.annotation.Immutable; +import org.apache.hc.core5.annotation.Contract; +import org.apache.hc.core5.annotation.ThreadingBehavior; /** * * @since 4.0 */ -@Immutable +@Contract(threading = ThreadingBehavior.IMMUTABLE) public abstract class AbstractCookieAttributeHandler implements CookieAttributeHandler { @Override