You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2016/06/07 18:24:12 UTC

svn commit: r1747290 [4/4] - in /httpcomponents/httpcore/branches/4.4.x: ./ httpcore-nio/src/main/java-deprecated/org/apache/http/impl/nio/ httpcore-nio/src/main/java-deprecated/org/apache/http/impl/nio/ssl/ httpcore-nio/src/main/java-deprecated/org/ap...

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicRequestLine.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicRequestLine.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicRequestLine.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicRequestLine.java Tue Jun  7 18:24:10 2016
@@ -31,7 +31,8 @@ import java.io.Serializable;
 
 import org.apache.http.ProtocolVersion;
 import org.apache.http.RequestLine;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -39,7 +40,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class BasicRequestLine implements RequestLine, Cloneable, Serializable {
 
     private static final long serialVersionUID = 2810581718468737193L;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicStatusLine.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicStatusLine.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicStatusLine.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicStatusLine.java Tue Jun  7 18:24:10 2016
@@ -31,7 +31,8 @@ import java.io.Serializable;
 
 import org.apache.http.ProtocolVersion;
 import org.apache.http.StatusLine;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -39,7 +40,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class BasicStatusLine implements StatusLine, Cloneable, Serializable {
 
     private static final long serialVersionUID = -2443303766890459269L;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicTokenIterator.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicTokenIterator.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicTokenIterator.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BasicTokenIterator.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,6 @@ import java.util.NoSuchElementException;
 import org.apache.http.HeaderIterator;
 import org.apache.http.ParseException;
 import org.apache.http.TokenIterator;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.util.Args;
 
 /**
@@ -43,7 +42,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class BasicTokenIterator implements TokenIterator {
 
     /** The HTTP separator characters. Defined in RFC 2616, section 2.2. */

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BufferedHeader.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BufferedHeader.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BufferedHeader.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/BufferedHeader.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,6 @@ import java.io.Serializable;
 import org.apache.http.FormattedHeader;
 import org.apache.http.HeaderElement;
 import org.apache.http.ParseException;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.util.Args;
 import org.apache.http.util.CharArrayBuffer;
 
@@ -42,7 +41,6 @@ import org.apache.http.util.CharArrayBuf
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class BufferedHeader implements FormattedHeader, Cloneable, Serializable {
 
     private static final long serialVersionUID = -2768352615787625448L;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/HeaderGroup.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/HeaderGroup.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/HeaderGroup.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/HeaderGroup.java Tue Jun  7 18:24:10 2016
@@ -35,7 +35,6 @@ import java.util.Locale;
 
 import org.apache.http.Header;
 import org.apache.http.HeaderIterator;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.util.CharArrayBuffer;
 
 /**
@@ -46,7 +45,6 @@ import org.apache.http.util.CharArrayBuf
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class HeaderGroup implements Cloneable, Serializable {
 
     private static final long serialVersionUID = 2608834160639271617L;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/ParserCursor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/ParserCursor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/ParserCursor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/ParserCursor.java Tue Jun  7 18:24:10 2016
@@ -27,8 +27,6 @@
 
 package org.apache.http.message;
 
-import org.apache.http.annotation.NotThreadSafe;
-
 /**
  * This class represents a context of a parsing operation:
  * <ul>
@@ -38,7 +36,6 @@ import org.apache.http.annotation.NotThr
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class ParserCursor {
 
     private final int lowerBound;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/TokenParser.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/TokenParser.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/TokenParser.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/message/TokenParser.java Tue Jun  7 18:24:10 2016
@@ -29,7 +29,8 @@ package org.apache.http.message;
 
 import java.util.BitSet;
 
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.CharArrayBuffer;
 
 /**
@@ -40,7 +41,7 @@ import org.apache.http.util.CharArrayBuf
  *
  * @since 4.4
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class TokenParser {
 
     public static BitSet INIT_BITSET(final int ... b) {

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/params/BasicHttpParams.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/params/BasicHttpParams.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/params/BasicHttpParams.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/params/BasicHttpParams.java Tue Jun  7 18:24:10 2016
@@ -27,14 +27,15 @@
 
 package org.apache.http.params;
 
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
+
 import java.io.Serializable;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.http.annotation.ThreadSafe;
-
 /**
  * Default implementation of {@link HttpParams} interface.
  * <p>
@@ -47,7 +48,7 @@ import org.apache.http.annotation.Thread
  *  and 'org.apache.http.client.config'
  */
 @Deprecated
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class BasicHttpParams extends AbstractHttpParams implements Serializable, Cloneable {
 
     private static final long serialVersionUID = -7086398485908701455L;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java Tue Jun  7 18:24:10 2016
@@ -40,7 +40,8 @@ import java.util.concurrent.TimeoutExcep
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.concurrent.FutureCallback;
 import org.apache.http.util.Args;
 import org.apache.http.util.Asserts;
@@ -60,7 +61,7 @@ import org.apache.http.util.Asserts;
  * @param <E> the type of the pool entry containing a pooled connection.
  * @since 4.2
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 public abstract class AbstractConnPool<T, C, E extends PoolEntry<T, C>>
                                                implements ConnPool<T, E>, ConnPoolControl<T> {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolEntry.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolEntry.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolEntry.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolEntry.java Tue Jun  7 18:24:10 2016
@@ -28,8 +28,8 @@ package org.apache.http.pool;
 
 import java.util.concurrent.TimeUnit;
 
-import org.apache.http.annotation.GuardedBy;
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -48,7 +48,7 @@ import org.apache.http.util.Args;
  * @param <C> the connection type.
  * @since 4.2
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 public abstract class PoolEntry<T, C> {
 
     private final String id;
@@ -57,10 +57,8 @@ public abstract class PoolEntry<T, C> {
     private final long created;
     private final long validityDeadline;
 
-    @GuardedBy("this")
     private long updated;
 
-    @GuardedBy("this")
     private long expiry;
 
     private volatile Object state;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolEntryFuture.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolEntryFuture.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolEntryFuture.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolEntryFuture.java Tue Jun  7 18:24:10 2016
@@ -35,11 +35,12 @@ import java.util.concurrent.TimeoutExcep
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.Lock;
 
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.concurrent.FutureCallback;
 import org.apache.http.util.Args;
 
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 abstract class PoolEntryFuture<T> implements Future<T> {
 
     private final Lock lock;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolStats.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolStats.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolStats.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/PoolStats.java Tue Jun  7 18:24:10 2016
@@ -26,9 +26,10 @@
  */
 package org.apache.http.pool;
 
-import java.io.Serializable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 
-import org.apache.http.annotation.Immutable;
+import java.io.Serializable;
 
 /**
  * Pool statistics.
@@ -38,7 +39,7 @@ import org.apache.http.annotation.Immuta
  *
  * @since 4.2
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class PoolStats implements Serializable {
 
     private static final long serialVersionUID = -2807686144795228544L;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/RouteSpecificPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/RouteSpecificPool.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/RouteSpecificPool.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/pool/RouteSpecificPool.java Tue Jun  7 18:24:10 2016
@@ -31,11 +31,9 @@ import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.Set;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.util.Args;
 import org.apache.http.util.Asserts;
 
-@NotThreadSafe
 abstract class RouteSpecificPool<T, C, E extends PoolEntry<T, C>> {
 
     private final T route;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/BasicHttpContext.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/BasicHttpContext.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/BasicHttpContext.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/BasicHttpContext.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,8 @@ package org.apache.http.protocol;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -41,7 +42,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 public class BasicHttpContext implements HttpContext {
 
     private final HttpContext parentContext;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ChainBuilder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ChainBuilder.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ChainBuilder.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ChainBuilder.java Tue Jun  7 18:24:10 2016
@@ -32,8 +32,6 @@ import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.Map;
 
-import org.apache.http.annotation.NotThreadSafe;
-
 /**
  * Builder class to build a linked list (chain) of unique class instances. Each class can have
  * only one instance in the list. Useful for building lists of protocol interceptors.
@@ -42,7 +40,6 @@ import org.apache.http.annotation.NotThr
  *
  * @since 4.3
  */
-@NotThreadSafe
 final class ChainBuilder<E> {
 
     private final LinkedList<E> list;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpCoreContext.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpCoreContext.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpCoreContext.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpCoreContext.java Tue Jun  7 18:24:10 2016
@@ -31,7 +31,6 @@ import org.apache.http.HttpConnection;
 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.util.Args;
 
 /**
@@ -40,7 +39,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.3
  */
-@NotThreadSafe
 public class HttpCoreContext implements HttpContext {
 
     /**

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpDateGenerator.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpDateGenerator.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpDateGenerator.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpDateGenerator.java Tue Jun  7 18:24:10 2016
@@ -27,21 +27,21 @@
 
 package org.apache.http.protocol;
 
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
+
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
 import java.util.TimeZone;
 
-import org.apache.http.annotation.GuardedBy;
-import org.apache.http.annotation.ThreadSafe;
-
 /**
  * Generates a date in the format required by the HTTP protocol.
  *
  * @since 4.0
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class HttpDateGenerator {
 
     /** Date format pattern used to generate the header in RFC 1123 format. */
@@ -51,11 +51,8 @@ public class HttpDateGenerator {
     /** The time zone to use in the date header. */
     public static final TimeZone GMT = TimeZone.getTimeZone("GMT");
 
-    @GuardedBy("this")
     private final DateFormat dateformat;
-    @GuardedBy("this")
     private long dateAsLong = 0L;
-    @GuardedBy("this")
     private String dateAsText = null;
 
     public HttpDateGenerator() {

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpRequestExecutor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpRequestExecutor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpRequestExecutor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpRequestExecutor.java Tue Jun  7 18:24:10 2016
@@ -38,7 +38,8 @@ import org.apache.http.HttpStatus;
 import org.apache.http.HttpVersion;
 import org.apache.http.ProtocolException;
 import org.apache.http.ProtocolVersion;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -54,7 +55,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class HttpRequestExecutor {
 
     public static final int DEFAULT_WAIT_FOR_CONTINUE = 3000;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpService.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpService.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpService.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/HttpService.java Tue Jun  7 18:24:10 2016
@@ -42,7 +42,8 @@ import org.apache.http.HttpVersion;
 import org.apache.http.MethodNotSupportedException;
 import org.apache.http.ProtocolException;
 import org.apache.http.UnsupportedHttpVersionException;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.Contract;
+import org.apache.http.annotation.ThreadingBehavior;
 import org.apache.http.entity.ByteArrayEntity;
 import org.apache.http.impl.DefaultConnectionReuseStrategy;
 import org.apache.http.impl.DefaultHttpResponseFactory;
@@ -71,7 +72,7 @@ import org.apache.http.util.EntityUtils;
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@Immutable // provided injected dependencies are immutable and deprecated methods are not used
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 public class HttpService {
 
     /**

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ImmutableHttpProcessor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ImmutableHttpProcessor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ImmutableHttpProcessor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ImmutableHttpProcessor.java Tue Jun  7 18:24:10 2016
@@ -34,14 +34,15 @@ import org.apache.http.HttpRequest;
 import org.apache.http.HttpRequestInterceptor;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpResponseInterceptor;
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 
 /**
  * Immutable {@link HttpProcessor}.
  *
  * @since 4.1
  */
-@ThreadSafe // provided injected dependencies are immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 public final class ImmutableHttpProcessor implements HttpProcessor {
 
     private final HttpRequestInterceptor[] requestInterceptors;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestConnControl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestConnControl.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestConnControl.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestConnControl.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,8 @@ import java.io.IOException;
 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.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -43,7 +44,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class RequestConnControl implements HttpRequestInterceptor {
 
     public RequestConnControl() {

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestContent.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestContent.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestContent.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestContent.java Tue Jun  7 18:24:10 2016
@@ -37,7 +37,8 @@ import org.apache.http.HttpRequestInterc
 import org.apache.http.HttpVersion;
 import org.apache.http.ProtocolException;
 import org.apache.http.ProtocolVersion;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -50,7 +51,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class RequestContent implements HttpRequestInterceptor {
 
     private final boolean overwrite;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestDate.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestDate.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestDate.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestDate.java Tue Jun  7 18:24:10 2016
@@ -33,7 +33,8 @@ import org.apache.http.HttpEntityEnclosi
 import org.apache.http.HttpException;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpRequestInterceptor;
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -43,7 +44,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class RequestDate implements HttpRequestInterceptor {
 
     private static final HttpDateGenerator DATE_GENERATOR = new HttpDateGenerator();

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestExpectContinue.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestExpectContinue.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestExpectContinue.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestExpectContinue.java Tue Jun  7 18:24:10 2016
@@ -36,7 +36,8 @@ 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.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.params.CoreProtocolPNames;
 import org.apache.http.util.Args;
 
@@ -47,7 +48,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 @SuppressWarnings("deprecation")
 public class RequestExpectContinue implements HttpRequestInterceptor {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestTargetHost.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestTargetHost.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestTargetHost.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestTargetHost.java Tue Jun  7 18:24:10 2016
@@ -39,7 +39,8 @@ import org.apache.http.HttpRequestInterc
 import org.apache.http.HttpVersion;
 import org.apache.http.ProtocolException;
 import org.apache.http.ProtocolVersion;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -48,7 +49,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class RequestTargetHost implements HttpRequestInterceptor {
 
     public RequestTargetHost() {

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestUserAgent.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestUserAgent.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestUserAgent.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/RequestUserAgent.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,8 @@ import java.io.IOException;
 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.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.params.CoreProtocolPNames;
 import org.apache.http.params.HttpParams;
 import org.apache.http.util.Args;
@@ -44,7 +45,7 @@ import org.apache.http.util.Args;
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class RequestUserAgent implements HttpRequestInterceptor {
 
     private final String userAgent;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseConnControl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseConnControl.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseConnControl.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseConnControl.java Tue Jun  7 18:24:10 2016
@@ -38,7 +38,8 @@ import org.apache.http.HttpResponseInter
 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.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -49,7 +50,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class ResponseConnControl implements HttpResponseInterceptor {
 
     public ResponseConnControl() {

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseContent.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseContent.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseContent.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseContent.java Tue Jun  7 18:24:10 2016
@@ -37,7 +37,8 @@ import org.apache.http.HttpStatus;
 import org.apache.http.HttpVersion;
 import org.apache.http.ProtocolException;
 import org.apache.http.ProtocolVersion;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -50,7 +51,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class ResponseContent implements HttpResponseInterceptor {
 
     private final boolean overwrite;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseDate.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseDate.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseDate.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseDate.java Tue Jun  7 18:24:10 2016
@@ -33,7 +33,8 @@ import org.apache.http.HttpException;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpResponseInterceptor;
 import org.apache.http.HttpStatus;
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -43,7 +44,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class ResponseDate implements HttpResponseInterceptor {
 
     private static final HttpDateGenerator DATE_GENERATOR = new HttpDateGenerator();

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseServer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseServer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/ResponseServer.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,8 @@ import java.io.IOException;
 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.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -41,7 +42,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class ResponseServer implements HttpResponseInterceptor {
 
     private final String originServer;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/UriHttpRequestHandlerMapper.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/UriHttpRequestHandlerMapper.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/UriHttpRequestHandlerMapper.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/UriHttpRequestHandlerMapper.java Tue Jun  7 18:24:10 2016
@@ -28,7 +28,8 @@
 package org.apache.http.protocol;
 
 import org.apache.http.HttpRequest;
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -48,7 +49,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.3
  */
-@ThreadSafe // provided injected dependencies are thread-safe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class UriHttpRequestHandlerMapper implements HttpRequestHandlerMapper {
 
     private final UriPatternMatcher<HttpRequestHandler> matcher;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/UriPatternMatcher.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/UriPatternMatcher.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/UriPatternMatcher.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/protocol/UriPatternMatcher.java Tue Jun  7 18:24:10 2016
@@ -30,8 +30,8 @@ package org.apache.http.protocol;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.http.annotation.GuardedBy;
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.util.Args;
 
 /**
@@ -49,10 +49,9 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class UriPatternMatcher<T> {
 
-    @GuardedBy("this")
     private final Map<String, T> map;
 
     public UriPatternMatcher() {

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/ssl/SSLContextBuilder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/ssl/SSLContextBuilder.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/ssl/SSLContextBuilder.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/ssl/SSLContextBuilder.java Tue Jun  7 18:24:10 2016
@@ -58,7 +58,6 @@ import javax.net.ssl.TrustManagerFactory
 import javax.net.ssl.X509ExtendedKeyManager;
 import javax.net.ssl.X509TrustManager;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.util.Args;
 
 /**
@@ -73,7 +72,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.4
  */
-@NotThreadSafe
 public class SSLContextBuilder {
 
     static final String TLS   = "TLS";

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/ssl/SSLContexts.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/ssl/SSLContexts.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/ssl/SSLContexts.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/ssl/SSLContexts.java Tue Jun  7 18:24:10 2016
@@ -32,14 +32,11 @@ import java.security.NoSuchAlgorithmExce
 
 import javax.net.ssl.SSLContext;
 
-import org.apache.http.annotation.Immutable;
-
 /**
  * {@link javax.net.ssl.SSLContext} factory methods.
  *
  * @since 4.4
  */
-@Immutable
 public class SSLContexts {
 
     /**

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/util/ByteArrayBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/util/ByteArrayBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/util/ByteArrayBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/util/ByteArrayBuffer.java Tue Jun  7 18:24:10 2016
@@ -29,14 +29,11 @@ package org.apache.http.util;
 
 import java.io.Serializable;
 
-import org.apache.http.annotation.NotThreadSafe;
-
 /**
  * A resizable byte array.
  *
  * @since 4.0
  */
-@NotThreadSafe
 public final class ByteArrayBuffer implements Serializable {
 
     private static final long serialVersionUID = 4359112959524048036L;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/util/CharArrayBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/util/CharArrayBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/util/CharArrayBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/util/CharArrayBuffer.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.util;
 import java.io.Serializable;
 import java.nio.CharBuffer;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.protocol.HTTP;
 
 /**
@@ -38,7 +37,6 @@ import org.apache.http.protocol.HTTP;
  *
  * @since 4.0
  */
-@NotThreadSafe
 public final class CharArrayBuffer implements CharSequence, Serializable {
 
     private static final long serialVersionUID = -6208952725094867135L;