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 [2/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-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseParserFactory.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseParserFactory.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseParserFactory.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseParserFactory.java Tue Jun  7 18:24:10 2016
@@ -29,7 +29,8 @@ package org.apache.http.impl.nio.codecs;
 
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpResponseFactory;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.config.MessageConstraints;
 import org.apache.http.impl.DefaultHttpResponseFactory;
 import org.apache.http.message.BasicLineParser;
@@ -43,7 +44,7 @@ import org.apache.http.nio.reactor.Sessi
  *
  * @since 4.3
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 public class DefaultHttpResponseParserFactory implements NHttpMessageParserFactory<HttpResponse> {
 
     public static final DefaultHttpResponseParserFactory INSTANCE = new DefaultHttpResponseParserFactory();

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseWriter.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseWriter.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseWriter.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseWriter.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.impl.nio.codecs;
 import java.io.IOException;
 
 import org.apache.http.HttpResponse;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.message.LineFormatter;
 import org.apache.http.nio.reactor.SessionOutputBuffer;
 import org.apache.http.params.HttpParams;
@@ -43,7 +42,6 @@ import org.apache.http.util.CharArrayBuf
  * @since 4.1
  */
 @SuppressWarnings("deprecation")
-@NotThreadSafe
 public class DefaultHttpResponseWriter extends AbstractMessageWriter<HttpResponse> {
 
     /**

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseWriterFactory.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseWriterFactory.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseWriterFactory.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/DefaultHttpResponseWriterFactory.java Tue Jun  7 18:24:10 2016
@@ -28,7 +28,8 @@
 package org.apache.http.impl.nio.codecs;
 
 import org.apache.http.HttpResponse;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.message.BasicLineFormatter;
 import org.apache.http.message.LineFormatter;
 import org.apache.http.nio.NHttpMessageWriter;
@@ -40,7 +41,7 @@ import org.apache.http.nio.reactor.Sessi
  *
  * @since 4.3
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 public class DefaultHttpResponseWriterFactory implements NHttpMessageWriterFactory<HttpResponse> {
 
     public static final DefaultHttpResponseWriterFactory INSTANCE = new DefaultHttpResponseWriterFactory();

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/IdentityDecoder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/IdentityDecoder.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/IdentityDecoder.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/IdentityDecoder.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,6 @@ import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 import java.nio.channels.ReadableByteChannel;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.impl.io.HttpTransportMetricsImpl;
 import org.apache.http.nio.FileContentDecoder;
 import org.apache.http.nio.reactor.SessionInputBuffer;
@@ -50,7 +49,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class IdentityDecoder extends AbstractContentDecoder
         implements FileContentDecoder {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/IdentityEncoder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/IdentityEncoder.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/IdentityEncoder.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/IdentityEncoder.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,6 @@ import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 import java.nio.channels.WritableByteChannel;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.impl.io.HttpTransportMetricsImpl;
 import org.apache.http.nio.FileContentEncoder;
 import org.apache.http.nio.reactor.SessionOutputBuffer;
@@ -49,7 +48,6 @@ import org.apache.http.nio.reactor.Sessi
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class IdentityEncoder extends AbstractContentEncoder
         implements FileContentEncoder {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/LengthDelimitedDecoder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/LengthDelimitedDecoder.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/LengthDelimitedDecoder.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/LengthDelimitedDecoder.java Tue Jun  7 18:24:10 2016
@@ -33,7 +33,6 @@ import java.nio.channels.FileChannel;
 import java.nio.channels.ReadableByteChannel;
 
 import org.apache.http.ConnectionClosedException;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.impl.io.HttpTransportMetricsImpl;
 import org.apache.http.nio.FileContentDecoder;
 import org.apache.http.nio.reactor.SessionInputBuffer;
@@ -52,7 +51,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class LengthDelimitedDecoder extends AbstractContentDecoder
         implements FileContentDecoder {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/LengthDelimitedEncoder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/LengthDelimitedEncoder.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/LengthDelimitedEncoder.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/LengthDelimitedEncoder.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,6 @@ import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 import java.nio.channels.WritableByteChannel;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.impl.io.HttpTransportMetricsImpl;
 import org.apache.http.nio.FileContentEncoder;
 import org.apache.http.nio.reactor.SessionOutputBuffer;
@@ -51,7 +50,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class LengthDelimitedEncoder extends AbstractContentEncoder
         implements FileContentEncoder {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnFactory.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnFactory.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnFactory.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnFactory.java Tue Jun  7 18:24:10 2016
@@ -34,7 +34,8 @@ import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpResponseFactory;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.config.ConnectionConfig;
 import org.apache.http.impl.DefaultHttpResponseFactory;
 import org.apache.http.impl.nio.DefaultNHttpClientConnectionFactory;
@@ -59,7 +60,7 @@ import org.apache.http.util.Args;
  * @since 4.2
  */
 @SuppressWarnings("deprecation")
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 public class BasicNIOConnFactory implements NIOConnFactory<HttpHost, NHttpClientConnection> {
 
     private final NHttpConnectionFactory<? extends NHttpClientConnection> plainFactory;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java Tue Jun  7 18:24:10 2016
@@ -33,7 +33,8 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.http.HttpHost;
-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.config.ConnectionConfig;
 import org.apache.http.nio.NHttpClientConnection;
@@ -56,7 +57,7 @@ import org.apache.http.util.Args;
  * @since 4.2
  */
 @SuppressWarnings("deprecation")
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class BasicNIOConnPool extends AbstractNIOConnPool<HttpHost, NHttpClientConnection, BasicNIOPoolEntry> {
 
     private static final AtomicLong COUNTER = new AtomicLong();

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOPoolEntry.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOPoolEntry.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOPoolEntry.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOPoolEntry.java Tue Jun  7 18:24:10 2016
@@ -29,7 +29,8 @@ package org.apache.http.impl.nio.pool;
 import java.io.IOException;
 
 import org.apache.http.HttpHost;
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.nio.NHttpClientConnection;
 import org.apache.http.pool.PoolEntry;
 
@@ -41,7 +42,7 @@ import org.apache.http.pool.PoolEntry;
  * @see HttpHost
  * @since 4.2
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class BasicNIOPoolEntry extends PoolEntry<HttpHost, NHttpClientConnection> {
 
     private volatile int socketTimeout;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIODispatch.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIODispatch.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIODispatch.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIODispatch.java Tue Jun  7 18:24:10 2016
@@ -29,7 +29,6 @@ package org.apache.http.impl.nio.reactor
 
 import java.io.IOException;
 
-import org.apache.http.annotation.Immutable;
 import org.apache.http.nio.reactor.IOEventDispatch;
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.reactor.ssl.SSLIOSession;
@@ -42,7 +41,6 @@ import org.apache.http.util.Asserts;
  * @param <T> the connection type.
  * @since 4.2
  */
-@Immutable // provided injected dependencies are immutable
 public abstract class AbstractIODispatch<T> implements IOEventDispatch {
 
     protected abstract T createConnection(IOSession session);

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java Tue Jun  7 18:24:10 2016
@@ -41,7 +41,6 @@ import java.util.Queue;
 import java.util.Set;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
-import org.apache.http.annotation.ThreadSafe;
 import org.apache.http.nio.reactor.IOReactor;
 import org.apache.http.nio.reactor.IOReactorException;
 import org.apache.http.nio.reactor.IOReactorStatus;
@@ -56,7 +55,6 @@ import org.apache.http.util.Asserts;
  *
  * @since 4.0
  */
-@ThreadSafe // public methods only
 public abstract class AbstractIOReactor implements IOReactor {
 
     private volatile IOReactorStatus status;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java Tue Jun  7 18:24:10 2016
@@ -42,7 +42,6 @@ import java.util.List;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.atomic.AtomicLong;
 
-import org.apache.http.annotation.ThreadSafe;
 import org.apache.http.nio.params.NIOReactorPNames;
 import org.apache.http.nio.reactor.IOEventDispatch;
 import org.apache.http.nio.reactor.IOReactor;
@@ -96,7 +95,6 @@ import org.apache.http.util.Asserts;
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@ThreadSafe // public methods only
 public abstract class AbstractMultiworkerIOReactor implements IOReactor {
 
     protected volatile IOReactorStatus status;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/BaseIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/BaseIOReactor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/BaseIOReactor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/BaseIOReactor.java Tue Jun  7 18:24:10 2016
@@ -34,7 +34,6 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
 
-import org.apache.http.annotation.ThreadSafe;
 import org.apache.http.nio.reactor.EventMask;
 import org.apache.http.nio.reactor.IOEventDispatch;
 import org.apache.http.nio.reactor.IOReactorException;
@@ -51,7 +50,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@ThreadSafe // public methods only
 public class BaseIOReactor extends AbstractIOReactor {
 
     private final long timeoutCheckInterval;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ChannelEntry.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ChannelEntry.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ChannelEntry.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ChannelEntry.java Tue Jun  7 18:24:10 2016
@@ -29,7 +29,6 @@ package org.apache.http.impl.nio.reactor
 
 import java.nio.channels.SocketChannel;
 
-import org.apache.http.annotation.Immutable;
 import org.apache.http.util.Args;
 
 /**
@@ -39,7 +38,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
 public class ChannelEntry {
 
     private final SocketChannel channel;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultConnectingIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultConnectingIOReactor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultConnectingIOReactor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultConnectingIOReactor.java Tue Jun  7 18:24:10 2016
@@ -40,7 +40,6 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.ThreadFactory;
 
-import org.apache.http.annotation.ThreadSafe;
 import org.apache.http.nio.reactor.ConnectingIOReactor;
 import org.apache.http.nio.reactor.IOReactorException;
 import org.apache.http.nio.reactor.IOReactorStatus;
@@ -57,7 +56,6 @@ import org.apache.http.util.Asserts;
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@ThreadSafe // public methods only
 public class DefaultConnectingIOReactor extends AbstractMultiworkerIOReactor
         implements ConnectingIOReactor {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultListeningIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultListeningIOReactor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultListeningIOReactor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultListeningIOReactor.java Tue Jun  7 18:24:10 2016
@@ -42,7 +42,6 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.ThreadFactory;
 
-import org.apache.http.annotation.ThreadSafe;
 import org.apache.http.nio.reactor.IOReactorException;
 import org.apache.http.nio.reactor.IOReactorStatus;
 import org.apache.http.nio.reactor.ListenerEndpoint;
@@ -58,7 +57,6 @@ import org.apache.http.util.Asserts;
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@ThreadSafe // public methods only
 public class DefaultListeningIOReactor extends AbstractMultiworkerIOReactor
         implements ListeningIOReactor {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ExceptionEvent.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ExceptionEvent.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ExceptionEvent.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ExceptionEvent.java Tue Jun  7 18:24:10 2016
@@ -27,16 +27,17 @@
 
 package org.apache.http.impl.nio.reactor;
 
-import java.util.Date;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 
-import org.apache.http.annotation.Immutable;
+import java.util.Date;
 
 /**
  * A {@link Throwable} instance along with a time stamp.
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class ExceptionEvent {
 
     private final Throwable ex;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java Tue Jun  7 18:24:10 2016
@@ -27,7 +27,6 @@
 
 package org.apache.http.impl.nio.reactor;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.util.Args;
 
 /**
@@ -35,7 +34,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.2
  */
-@NotThreadSafe
 public final class IOReactorConfig implements Cloneable {
 
     private static final int AVAIL_PROCS = Runtime.getRuntime().availableProcessors();

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java Tue Jun  7 18:24:10 2016
@@ -38,7 +38,8 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.reactor.SessionBufferStatus;
 import org.apache.http.nio.reactor.SocketAccessor;
@@ -49,7 +50,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class IOSessionImpl implements IOSession, SocketAccessor {
 
     private final SelectionKey key;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ListenerEndpointImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ListenerEndpointImpl.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ListenerEndpointImpl.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/ListenerEndpointImpl.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,8 @@ import java.net.SocketAddress;
 import java.nio.channels.Channel;
 import java.nio.channels.SelectionKey;
 
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.nio.reactor.ListenerEndpoint;
 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 ListenerEndpointImpl implements ListenerEndpoint {
 
     private volatile boolean completed;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionInputBufferImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionInputBufferImpl.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionInputBufferImpl.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionInputBufferImpl.java Tue Jun  7 18:24:10 2016
@@ -39,7 +39,6 @@ import java.nio.charset.CoderResult;
 import java.nio.charset.CodingErrorAction;
 
 import org.apache.http.MessageConstraintException;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.config.MessageConstraints;
 import org.apache.http.nio.reactor.SessionInputBuffer;
 import org.apache.http.nio.util.ByteBufferAllocator;
@@ -59,7 +58,6 @@ import org.apache.http.util.CharsetUtils
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@NotThreadSafe
 public class SessionInputBufferImpl extends ExpandableBuffer implements SessionInputBuffer {
 
     private final CharsetDecoder chardecoder;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionOutputBufferImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionOutputBufferImpl.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionOutputBufferImpl.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionOutputBufferImpl.java Tue Jun  7 18:24:10 2016
@@ -38,7 +38,6 @@ import java.nio.charset.CharsetEncoder;
 import java.nio.charset.CoderResult;
 import java.nio.charset.CodingErrorAction;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.nio.reactor.SessionOutputBuffer;
 import org.apache.http.nio.util.ByteBufferAllocator;
 import org.apache.http.nio.util.ExpandableBuffer;
@@ -57,7 +56,6 @@ import org.apache.http.util.CharsetUtils
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@NotThreadSafe
 public class SessionOutputBufferImpl extends ExpandableBuffer implements SessionOutputBuffer {
 
     private static final byte[] CRLF = new byte[] {HTTP.CR, HTTP.LF};

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionRequestHandle.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionRequestHandle.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionRequestHandle.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionRequestHandle.java Tue Jun  7 18:24:10 2016
@@ -27,7 +27,6 @@
 
 package org.apache.http.impl.nio.reactor;
 
-import org.apache.http.annotation.Immutable;
 import org.apache.http.util.Args;
 
 /**
@@ -37,7 +36,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@Immutable
 public class SessionRequestHandle {
 
     private final SessionRequestImpl sessionRequest;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionRequestImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionRequestImpl.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionRequestImpl.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionRequestImpl.java Tue Jun  7 18:24:10 2016
@@ -32,7 +32,8 @@ import java.net.SocketAddress;
 import java.nio.channels.Channel;
 import java.nio.channels.SelectionKey;
 
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.reactor.SessionRequest;
 import org.apache.http.nio.reactor.SessionRequestCallback;
@@ -43,7 +44,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 public class SessionRequestImpl implements SessionRequest {
 
     private volatile boolean completed;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentBufferEntity.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentBufferEntity.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentBufferEntity.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentBufferEntity.java Tue Jun  7 18:24:10 2016
@@ -29,7 +29,6 @@ package org.apache.http.nio.entity;
 
 import org.apache.http.Header;
 import org.apache.http.HttpEntity;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.entity.BasicHttpEntity;
 import org.apache.http.nio.util.ContentInputBuffer;
 import org.apache.http.util.Args;
@@ -40,7 +39,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class ContentBufferEntity extends BasicHttpEntity {
 
     private final HttpEntity wrappedEntity;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentInputStream.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentInputStream.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentInputStream.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentInputStream.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.nio.entity;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.io.BufferInfo;
 import org.apache.http.nio.util.ContentInputBuffer;
 import org.apache.http.util.Args;
@@ -40,7 +39,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class ContentInputStream extends InputStream {
 
     private final ContentInputBuffer buffer;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentOutputStream.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentOutputStream.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentOutputStream.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/ContentOutputStream.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.nio.entity;
 import java.io.IOException;
 import java.io.OutputStream;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.nio.util.ContentOutputBuffer;
 import org.apache.http.util.Args;
 
@@ -39,7 +38,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class ContentOutputStream extends OutputStream {
 
     private final ContentOutputBuffer buffer;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/EntityAsyncContentProducer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/EntityAsyncContentProducer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/EntityAsyncContentProducer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/EntityAsyncContentProducer.java Tue Jun  7 18:24:10 2016
@@ -34,7 +34,6 @@ import java.nio.channels.Channels;
 import java.nio.channels.ReadableByteChannel;
 
 import org.apache.http.HttpEntity;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.nio.ContentEncoder;
 import org.apache.http.nio.IOControl;
 import org.apache.http.util.Args;
@@ -46,7 +45,6 @@ import org.apache.http.util.Args;
  *
  * @since 4.2
  */
-@NotThreadSafe
 public class EntityAsyncContentProducer implements HttpAsyncContentProducer {
 
     private final HttpEntity entity;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NByteArrayEntity.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NByteArrayEntity.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NByteArrayEntity.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NByteArrayEntity.java Tue Jun  7 18:24:10 2016
@@ -33,7 +33,6 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.entity.AbstractHttpEntity;
 import org.apache.http.entity.ContentType;
 import org.apache.http.nio.ContentEncoder;
@@ -47,7 +46,6 @@ import org.apache.http.util.Args;
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@NotThreadSafe
 public class NByteArrayEntity extends AbstractHttpEntity
                               implements HttpAsyncContentProducer, ProducingNHttpEntity {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NFileEntity.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NFileEntity.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NFileEntity.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NFileEntity.java Tue Jun  7 18:24:10 2016
@@ -35,7 +35,6 @@ import java.io.OutputStream;
 import java.io.RandomAccessFile;
 import java.nio.channels.FileChannel;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.entity.AbstractHttpEntity;
 import org.apache.http.entity.ContentType;
 import org.apache.http.nio.ContentEncoder;
@@ -53,7 +52,6 @@ import org.apache.http.util.Args;
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@NotThreadSafe
 public class NFileEntity extends AbstractHttpEntity
                          implements HttpAsyncContentProducer, ProducingNHttpEntity {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NStringEntity.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NStringEntity.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NStringEntity.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/entity/NStringEntity.java Tue Jun  7 18:24:10 2016
@@ -35,7 +35,6 @@ import java.io.UnsupportedEncodingExcept
 import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.entity.AbstractHttpEntity;
 import org.apache.http.entity.ContentType;
 import org.apache.http.nio.ContentEncoder;
@@ -51,7 +50,6 @@ import org.apache.http.util.Args;
  *
  */
 @SuppressWarnings("deprecation")
-@NotThreadSafe
 public class NStringEntity extends AbstractHttpEntity
                            implements HttpAsyncContentProducer, ProducingNHttpEntity {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java Tue Jun  7 18:24:10 2016
@@ -43,7 +43,8 @@ import java.util.concurrent.atomic.Atomi
 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.BasicFuture;
 import org.apache.http.concurrent.FutureCallback;
 import org.apache.http.nio.reactor.ConnectingIOReactor;
@@ -68,7 +69,7 @@ import org.apache.http.util.Asserts;
  *
  * @since 4.2
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 public abstract class AbstractNIOConnPool<T, C, E extends PoolEntry<T, C>>
                                                   implements ConnPool<T, E>, ConnPoolControl<T> {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/LeaseRequest.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/LeaseRequest.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/LeaseRequest.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/LeaseRequest.java Tue Jun  7 18:24:10 2016
@@ -26,13 +26,11 @@
  */
 package org.apache.http.nio.pool;
 
-import org.apache.http.annotation.Immutable;
 import org.apache.http.concurrent.BasicFuture;
 import org.apache.http.pool.PoolEntry;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 
-@Immutable
 class LeaseRequest<T, C, E extends PoolEntry<T, C>> {
 
     private final T route;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/RouteSpecificPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/RouteSpecificPool.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/RouteSpecificPool.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/pool/RouteSpecificPool.java Tue Jun  7 18:24:10 2016
@@ -34,14 +34,12 @@ import java.util.LinkedList;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.concurrent.BasicFuture;
 import org.apache.http.nio.reactor.SessionRequest;
 import org.apache.http.pool.PoolEntry;
 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-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncRequestHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncRequestHandler.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncRequestHandler.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncRequestHandler.java Tue Jun  7 18:24:10 2016
@@ -31,7 +31,8 @@ import java.io.IOException;
 
 import org.apache.http.HttpException;
 import org.apache.http.HttpRequest;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.HttpRequestHandler;
 import org.apache.http.util.Args;
@@ -44,7 +45,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.2
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 public class BasicAsyncRequestHandler implements HttpAsyncRequestHandler<HttpRequest> {
 
     private final HttpRequestHandler handler;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.java Tue Jun  7 18:24:10 2016
@@ -43,7 +43,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.nio.ContentDecoder;
 import org.apache.http.nio.ContentEncoder;
 import org.apache.http.nio.NHttpClientConnection;
@@ -79,7 +80,7 @@ import org.apache.http.util.Asserts;
  *
  * @since 4.2
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 public class HttpAsyncRequestExecutor implements NHttpClientEventHandler {
 
     public static final int DEFAULT_WAIT_FOR_CONTINUE = 3000;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequester.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequester.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequester.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequester.java Tue Jun  7 18:24:10 2016
@@ -35,7 +35,8 @@ import org.apache.http.ConnectionClosedE
 import org.apache.http.ConnectionReuseStrategy;
 import org.apache.http.ExceptionLogger;
 import org.apache.http.HttpHost;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.concurrent.BasicFuture;
 import org.apache.http.concurrent.FutureCallback;
 import org.apache.http.impl.DefaultConnectionReuseStrategy;
@@ -58,7 +59,7 @@ import org.apache.http.util.Args;
  * @since 4.2
  */
 @SuppressWarnings("deprecation")
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 public class HttpAsyncRequester {
 
     private final HttpProcessor httpprocessor;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java Tue Jun  7 18:24:10 2016
@@ -46,7 +46,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.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.concurrent.Cancellable;
 import org.apache.http.entity.ContentType;
 import org.apache.http.impl.DefaultConnectionReuseStrategy;
@@ -98,7 +99,7 @@ import org.apache.http.util.Asserts;
  * @since 4.2
  */
 @SuppressWarnings("deprecation")
-@Immutable // provided injected dependencies are immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 public class HttpAsyncService implements NHttpServerEventHandler {
 
     static final String HTTP_EXCHANGE_STATE = "http.nio.http-exchange-state";

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/UriHttpAsyncRequestHandlerMapper.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/UriHttpAsyncRequestHandlerMapper.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/UriHttpAsyncRequestHandlerMapper.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/protocol/UriHttpAsyncRequestHandlerMapper.java Tue Jun  7 18:24:10 2016
@@ -28,7 +28,8 @@
 package org.apache.http.nio.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.protocol.UriPatternMatcher;
 import org.apache.http.util.Args;
 
@@ -48,7 +49,7 @@ import org.apache.http.util.Args;
  *
  * @since 4.3
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 public class UriHttpAsyncRequestHandlerMapper implements HttpAsyncRequestHandlerMapper {
 
     private final UriPatternMatcher<HttpAsyncRequestHandler<?>> matcher;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java Tue Jun  7 18:24:10 2016
@@ -44,7 +44,8 @@ import javax.net.ssl.SSLException;
 import javax.net.ssl.SSLSession;
 
 import org.apache.http.HttpHost;
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.nio.reactor.EventMask;
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.reactor.SessionBufferStatus;
@@ -69,7 +70,7 @@ import org.apache.http.util.Asserts;
  *
  * @since 4.2
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 public class SSLIOSession implements IOSession, SessionBufferStatus, SocketAccessor {
 
     /**

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/DirectByteBufferAllocator.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/DirectByteBufferAllocator.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/DirectByteBufferAllocator.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/DirectByteBufferAllocator.java Tue Jun  7 18:24:10 2016
@@ -27,9 +27,10 @@
 
 package org.apache.http.nio.util;
 
-import java.nio.ByteBuffer;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 
-import org.apache.http.annotation.Immutable;
+import java.nio.ByteBuffer;
 
 /**
  * Allocates {@link ByteBuffer} instances using
@@ -37,7 +38,7 @@ import org.apache.http.annotation.Immuta
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class DirectByteBufferAllocator implements ByteBufferAllocator {
 
     public static final DirectByteBufferAllocator INSTANCE = new DirectByteBufferAllocator();

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/ExpandableBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/ExpandableBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/ExpandableBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/ExpandableBuffer.java Tue Jun  7 18:24:10 2016
@@ -29,7 +29,6 @@ package org.apache.http.nio.util;
 
 import java.nio.ByteBuffer;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.io.BufferInfo;
 import org.apache.http.util.Args;
 
@@ -43,7 +42,6 @@ import org.apache.http.util.Args;
  * @since 4.0
  */
 @SuppressWarnings("deprecation")
-@NotThreadSafe
 public class ExpandableBuffer implements BufferInfo, org.apache.http.nio.util.BufferInfo {
 
     public final static int INPUT_MODE = 0;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/HeapByteBufferAllocator.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/HeapByteBufferAllocator.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/HeapByteBufferAllocator.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/HeapByteBufferAllocator.java Tue Jun  7 18:24:10 2016
@@ -27,9 +27,10 @@
 
 package org.apache.http.nio.util;
 
-import java.nio.ByteBuffer;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 
-import org.apache.http.annotation.Immutable;
+import java.nio.ByteBuffer;
 
 /**
  * Allocates {@link ByteBuffer} instances using
@@ -37,7 +38,7 @@ import org.apache.http.annotation.Immuta
  *
  * @since 4.0
  */
-@Immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class HeapByteBufferAllocator implements ByteBufferAllocator {
 
     public static final HeapByteBufferAllocator INSTANCE = new HeapByteBufferAllocator();

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SharedInputBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SharedInputBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SharedInputBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SharedInputBuffer.java Tue Jun  7 18:24:10 2016
@@ -31,7 +31,8 @@ import java.io.InterruptedIOException;
 import java.util.concurrent.locks.Condition;
 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.nio.ContentDecoder;
 import org.apache.http.nio.IOControl;
 
@@ -51,7 +52,7 @@ import org.apache.http.nio.IOControl;
  *
  * @since 4.0
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 public class SharedInputBuffer extends ExpandableBuffer implements ContentInputBuffer {
 
     private final ReentrantLock lock;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SharedOutputBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SharedOutputBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SharedOutputBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SharedOutputBuffer.java Tue Jun  7 18:24:10 2016
@@ -31,7 +31,8 @@ import java.io.InterruptedIOException;
 import java.util.concurrent.locks.Condition;
 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.nio.ContentEncoder;
 import org.apache.http.nio.IOControl;
 import org.apache.http.util.Args;
@@ -53,7 +54,7 @@ import org.apache.http.util.Asserts;
  *
  * @since 4.0
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 public class SharedOutputBuffer extends ExpandableBuffer implements ContentOutputBuffer {
 
     private final ReentrantLock lock;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SimpleInputBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SimpleInputBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SimpleInputBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SimpleInputBuffer.java Tue Jun  7 18:24:10 2016
@@ -28,7 +28,6 @@ package org.apache.http.nio.util;
 
 import java.io.IOException;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.nio.ContentDecoder;
 
 /**
@@ -38,7 +37,6 @@ import org.apache.http.nio.ContentDecode
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class SimpleInputBuffer extends ExpandableBuffer implements ContentInputBuffer {
 
     private boolean endOfStream = false;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SimpleOutputBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SimpleOutputBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SimpleOutputBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/util/SimpleOutputBuffer.java Tue Jun  7 18:24:10 2016
@@ -28,7 +28,6 @@ package org.apache.http.nio.util;
 
 import java.io.IOException;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.nio.ContentEncoder;
 
 /**
@@ -38,7 +37,6 @@ import org.apache.http.nio.ContentEncode
  *
  * @since 4.0
  */
-@NotThreadSafe
 public class SimpleOutputBuffer extends ExpandableBuffer implements ContentOutputBuffer {
 
     private boolean endOfStream;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore-osgi/src/test/java/org/apache/http/osgi/AnnotationIT.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore-osgi/src/test/java/org/apache/http/osgi/AnnotationIT.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore-osgi/src/test/java/org/apache/http/osgi/AnnotationIT.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore-osgi/src/test/java/org/apache/http/osgi/AnnotationIT.java Tue Jun  7 18:24:10 2016
@@ -27,7 +27,6 @@
 
 package org.apache.http.osgi;
 
-import org.apache.http.annotation.Immutable;
 import org.junit.Test;
 
 /**
@@ -35,7 +34,6 @@ import org.junit.Test;
  */
 public class AnnotationIT extends Common {
 
-    @Immutable
     static class SomeClass {
         //
     }

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/AbstractHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/AbstractHttpClientConnection.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/AbstractHttpClientConnection.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/AbstractHttpClientConnection.java Tue Jun  7 18:24:10 2016
@@ -39,7 +39,6 @@ import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpResponseFactory;
 import org.apache.http.HttpStatus;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.impl.entity.EntityDeserializer;
 import org.apache.http.impl.entity.EntitySerializer;
 import org.apache.http.impl.entity.LaxContentLengthStrategy;
@@ -72,7 +71,6 @@ import org.apache.http.util.Args;
  *
  * @deprecated (4.3) use {@link DefaultBHttpClientConnection}
  */
-@NotThreadSafe
 @Deprecated
 public abstract class AbstractHttpClientConnection implements HttpClientConnection {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/AbstractHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/AbstractHttpServerConnection.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/AbstractHttpServerConnection.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/AbstractHttpServerConnection.java Tue Jun  7 18:24:10 2016
@@ -37,7 +37,6 @@ import org.apache.http.HttpRequest;
 import org.apache.http.HttpRequestFactory;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpServerConnection;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.impl.entity.DisallowIdentityContentLengthStrategy;
 import org.apache.http.impl.entity.EntityDeserializer;
 import org.apache.http.impl.entity.EntitySerializer;
@@ -71,7 +70,6 @@ import org.apache.http.util.Args;
  *
  * @deprecated (4.3) use {@link DefaultBHttpServerConnection}
  */
-@NotThreadSafe
 @Deprecated
 public abstract class AbstractHttpServerConnection implements HttpServerConnection {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/DefaultHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/DefaultHttpClientConnection.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/DefaultHttpClientConnection.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/DefaultHttpClientConnection.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.impl;
 import java.io.IOException;
 import java.net.Socket;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.params.CoreConnectionPNames;
 import org.apache.http.params.HttpParams;
 import org.apache.http.util.Args;
@@ -42,7 +41,6 @@ import org.apache.http.util.Args;
  *
  * @deprecated (4.3) use {@link DefaultBHttpClientConnection}
  */
-@NotThreadSafe
 @Deprecated
 public class DefaultHttpClientConnection extends SocketHttpClientConnection {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/DefaultHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/DefaultHttpServerConnection.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/DefaultHttpServerConnection.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/DefaultHttpServerConnection.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.impl;
 import java.io.IOException;
 import java.net.Socket;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.params.CoreConnectionPNames;
 import org.apache.http.params.HttpParams;
 import org.apache.http.util.Args;
@@ -42,7 +41,6 @@ import org.apache.http.util.Args;
  *
  * @deprecated (4.3) use {@link DefaultBHttpServerConnection}
  */
-@NotThreadSafe
 @Deprecated
 public class DefaultHttpServerConnection extends SocketHttpServerConnection {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/SocketHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/SocketHttpClientConnection.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/SocketHttpClientConnection.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/SocketHttpClientConnection.java Tue Jun  7 18:24:10 2016
@@ -35,7 +35,6 @@ import java.net.SocketAddress;
 import java.net.SocketException;
 
 import org.apache.http.HttpInetConnection;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.impl.io.SocketInputBuffer;
 import org.apache.http.impl.io.SocketOutputBuffer;
 import org.apache.http.io.SessionInputBuffer;
@@ -54,7 +53,6 @@ import org.apache.http.util.Asserts;
  *
  * @deprecated (4.3) use {@link DefaultBHttpClientConnection}
  */
-@NotThreadSafe
 @Deprecated
 public class SocketHttpClientConnection
         extends AbstractHttpClientConnection implements HttpInetConnection {

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/entity/EntityDeserializer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/entity/EntityDeserializer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/entity/EntityDeserializer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/entity/EntityDeserializer.java Tue Jun  7 18:24:10 2016
@@ -33,7 +33,8 @@ import org.apache.http.Header;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpException;
 import org.apache.http.HttpMessage;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.entity.BasicHttpEntity;
 import org.apache.http.entity.ContentLengthStrategy;
 import org.apache.http.impl.io.ChunkedInputStream;
@@ -61,7 +62,7 @@ import org.apache.http.util.Args;
  *
  * @deprecated (4.3) use {@link org.apache.http.impl.BHttpConnectionBase}
  */
-@Immutable // assuming injected dependencies are immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 @Deprecated
 public class EntityDeserializer {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/entity/EntitySerializer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/entity/EntitySerializer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/entity/EntitySerializer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/entity/EntitySerializer.java Tue Jun  7 18:24:10 2016
@@ -33,7 +33,8 @@ import java.io.OutputStream;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpException;
 import org.apache.http.HttpMessage;
-import org.apache.http.annotation.Immutable;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 import org.apache.http.entity.ContentLengthStrategy;
 import org.apache.http.impl.io.ChunkedOutputStream;
 import org.apache.http.impl.io.ContentLengthOutputStream;
@@ -58,7 +59,7 @@ import org.apache.http.util.Args;
  *
  * @deprecated (4.3) use {@link org.apache.http.impl.BHttpConnectionBase}
  */
-@Immutable // assuming injected dependencies are immutable
+@Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
 @Deprecated
 public class EntitySerializer {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/AbstractSessionInputBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/AbstractSessionInputBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/AbstractSessionInputBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/AbstractSessionInputBuffer.java Tue Jun  7 18:24:10 2016
@@ -37,7 +37,6 @@ import java.nio.charset.CoderResult;
 import java.nio.charset.CodingErrorAction;
 
 import org.apache.http.Consts;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.io.BufferInfo;
 import org.apache.http.io.HttpTransportMetrics;
 import org.apache.http.io.SessionInputBuffer;
@@ -62,7 +61,6 @@ import org.apache.http.util.CharArrayBuf
  *
  * @deprecated (4.3) use {@link SessionInputBufferImpl}
  */
-@NotThreadSafe
 @Deprecated
 public abstract class AbstractSessionInputBuffer implements SessionInputBuffer, BufferInfo {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/AbstractSessionOutputBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/AbstractSessionOutputBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/AbstractSessionOutputBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/AbstractSessionOutputBuffer.java Tue Jun  7 18:24:10 2016
@@ -37,7 +37,6 @@ import java.nio.charset.CoderResult;
 import java.nio.charset.CodingErrorAction;
 
 import org.apache.http.Consts;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.io.BufferInfo;
 import org.apache.http.io.HttpTransportMetrics;
 import org.apache.http.io.SessionOutputBuffer;
@@ -61,7 +60,6 @@ import org.apache.http.util.CharArrayBuf
  *
  * @deprecated (4.3) use {@link SessionOutputBufferImpl}
  */
-@NotThreadSafe
 @Deprecated
 public abstract class AbstractSessionOutputBuffer implements SessionOutputBuffer, BufferInfo {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpRequestParser.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpRequestParser.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpRequestParser.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpRequestParser.java Tue Jun  7 18:24:10 2016
@@ -35,7 +35,6 @@ import org.apache.http.HttpMessage;
 import org.apache.http.HttpRequestFactory;
 import org.apache.http.ParseException;
 import org.apache.http.RequestLine;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.io.SessionInputBuffer;
 import org.apache.http.message.LineParser;
 import org.apache.http.message.ParserCursor;
@@ -59,7 +58,6 @@ import org.apache.http.util.CharArrayBuf
  * @deprecated (4.2) use {@link DefaultHttpRequestParser}
  */
 @Deprecated
-@NotThreadSafe
 public class HttpRequestParser extends AbstractMessageParser<HttpMessage> {
 
     private final HttpRequestFactory requestFactory;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpRequestWriter.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpRequestWriter.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpRequestWriter.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpRequestWriter.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.impl.io;
 import java.io.IOException;
 
 import org.apache.http.HttpRequest;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.io.SessionOutputBuffer;
 import org.apache.http.message.LineFormatter;
 import org.apache.http.params.HttpParams;
@@ -43,7 +42,6 @@ import org.apache.http.params.HttpParams
  *
  * @deprecated (4.3) use {@link DefaultHttpRequestWriter}
  */
-@NotThreadSafe
 @Deprecated
 public class HttpRequestWriter extends AbstractMessageWriter<HttpRequest> {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpResponseParser.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpResponseParser.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpResponseParser.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpResponseParser.java Tue Jun  7 18:24:10 2016
@@ -35,7 +35,6 @@ import org.apache.http.HttpResponseFacto
 import org.apache.http.NoHttpResponseException;
 import org.apache.http.ParseException;
 import org.apache.http.StatusLine;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.io.SessionInputBuffer;
 import org.apache.http.message.LineParser;
 import org.apache.http.message.ParserCursor;
@@ -59,7 +58,6 @@ import org.apache.http.util.CharArrayBuf
  * @deprecated (4.2) use {@link DefaultHttpResponseParser}
  */
 @Deprecated
-@NotThreadSafe
 public class HttpResponseParser extends AbstractMessageParser<HttpMessage> {
 
     private final HttpResponseFactory responseFactory;

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpResponseWriter.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpResponseWriter.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpResponseWriter.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/HttpResponseWriter.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.impl.io;
 import java.io.IOException;
 
 import org.apache.http.HttpResponse;
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.io.SessionOutputBuffer;
 import org.apache.http.message.LineFormatter;
 import org.apache.http.params.HttpParams;
@@ -43,7 +42,6 @@ import org.apache.http.params.HttpParams
  *
  * @deprecated (4.3) use {@link DefaultHttpResponseWriter}
  */
-@NotThreadSafe
 @Deprecated
 public class HttpResponseWriter extends AbstractMessageWriter<HttpResponse> {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/SocketInputBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/SocketInputBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/SocketInputBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/SocketInputBuffer.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.impl.io;
 import java.io.IOException;
 import java.net.Socket;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.io.EofSensor;
 import org.apache.http.params.HttpParams;
 import org.apache.http.util.Args;
@@ -43,7 +42,6 @@ import org.apache.http.util.Args;
  *
  * @deprecated (4.3) use {@link SessionInputBufferImpl}
  */
-@NotThreadSafe
 @Deprecated
 public class SocketInputBuffer extends AbstractSessionInputBuffer implements EofSensor {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/SocketOutputBuffer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/SocketOutputBuffer.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/SocketOutputBuffer.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/impl/io/SocketOutputBuffer.java Tue Jun  7 18:24:10 2016
@@ -30,7 +30,6 @@ package org.apache.http.impl.io;
 import java.io.IOException;
 import java.net.Socket;
 
-import org.apache.http.annotation.NotThreadSafe;
 import org.apache.http.params.HttpParams;
 import org.apache.http.util.Args;
 
@@ -42,7 +41,6 @@ import org.apache.http.util.Args;
  *
  * @deprecated (4.3) use {@link SessionOutputBufferImpl}
  */
-@NotThreadSafe
 @Deprecated
 public class SocketOutputBuffer extends AbstractSessionOutputBuffer {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/params/SyncBasicHttpParams.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/params/SyncBasicHttpParams.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/params/SyncBasicHttpParams.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/params/SyncBasicHttpParams.java Tue Jun  7 18:24:10 2016
@@ -26,7 +26,8 @@
  */
 package org.apache.http.params;
 
-import org.apache.http.annotation.ThreadSafe;
+import org.apache.http.annotation.ThreadingBehavior;
+import org.apache.http.annotation.Contract;
 
 /**
  * Thread-safe extension of the {@link BasicHttpParams}.
@@ -36,7 +37,7 @@ import org.apache.http.annotation.Thread
  * @deprecated (4.3) use configuration classes provided 'org.apache.http.config'
  *  and 'org.apache.http.client.config'
  */
-@ThreadSafe
+@Contract(threading = ThreadingBehavior.SAFE)
 @Deprecated
 public class SyncBasicHttpParams extends BasicHttpParams {
 

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/protocol/BasicHttpProcessor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/protocol/BasicHttpProcessor.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/protocol/BasicHttpProcessor.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/protocol/BasicHttpProcessor.java Tue Jun  7 18:24:10 2016
@@ -37,7 +37,6 @@ 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.NotThreadSafe;
 import org.apache.http.util.Args;
 
 /**
@@ -50,7 +49,6 @@ import org.apache.http.util.Args;
  *
  * @deprecated (4.3)
  */
-@NotThreadSafe
 @Deprecated
 public final class BasicHttpProcessor implements
     HttpProcessor, HttpRequestInterceptorList, HttpResponseInterceptorList, Cloneable {

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/protocol/HttpRequestHandlerRegistry.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/protocol/HttpRequestHandlerRegistry.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/protocol/HttpRequestHandlerRegistry.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java-deprecated/org/apache/http/protocol/HttpRequestHandlerRegistry.java Tue Jun  7 18:24:10 2016
@@ -29,7 +29,8 @@ package org.apache.http.protocol;
 
 import java.util.Map;
 
-import org.apache.http.annotation.ThreadSafe;
+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
  * @deprecated (4.3) use {@link UriHttpRequestHandlerMapper}
  */
-@ThreadSafe // provided injected dependencies are thread-safe
+@Contract(threading = ThreadingBehavior.SAFE)
 @Deprecated
 public class HttpRequestHandlerRegistry implements HttpRequestHandlerResolver {
 

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

Modified: httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/HttpVersion.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/HttpVersion.java?rev=1747290&r1=1747289&r2=1747290&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/HttpVersion.java (original)
+++ httpcomponents/httpcore/branches/4.4.x/httpcore/src/main/java/org/apache/http/HttpVersion.java Tue Jun  7 18:24:10 2016
@@ -27,9 +27,10 @@
 
 package org.apache.http;
 
-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;
 
 /**
  * Represents an HTTP version. HTTP uses a "major.minor" numbering
@@ -44,9 +45,8 @@ import org.apache.http.annotation.Immuta
  *
  * @since 4.0
  */
-@Immutable
-public final class HttpVersion extends ProtocolVersion
-    implements Serializable {
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
+public final class HttpVersion extends ProtocolVersion implements Serializable {
 
     private static final long serialVersionUID = -5856653513894415344L;