Index: httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java =================================================================== --- httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java (revision 1581290) +++ httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java (working copy) @@ -47,6 +47,7 @@ import org.apache.http.concurrent.BasicFuture; import org.apache.http.concurrent.FutureCallback; import org.apache.http.nio.reactor.ConnectingIOReactor; +import org.apache.http.nio.reactor.IOReactorStatus; import org.apache.http.nio.reactor.IOSession; import org.apache.http.nio.reactor.SessionRequest; import org.apache.http.nio.reactor.SessionRequestCallback; @@ -510,7 +511,9 @@ this.pending.remove(request); final RouteSpecificPool pool = getPool(route); pool.cancelled(request); - processNextPendingRequest(); + if (this.ioreactor.getStatus().compareTo(IOReactorStatus.ACTIVE) <= 0) { + processNextPendingRequest(); + } } finally { this.lock.unlock(); } Index: httpcore-nio/src/test/java/org/apache/http/nio/pool/TestNIOConnPool.java =================================================================== --- httpcore-nio/src/test/java/org/apache/http/nio/pool/TestNIOConnPool.java (revision 1581290) +++ httpcore-nio/src/test/java/org/apache/http/nio/pool/TestNIOConnPool.java (working copy) @@ -38,6 +38,7 @@ import org.apache.http.concurrent.BasicFuture; import org.apache.http.nio.reactor.ConnectingIOReactor; +import org.apache.http.nio.reactor.IOReactorStatus; import org.apache.http.nio.reactor.IOSession; import org.apache.http.nio.reactor.SessionRequest; import org.apache.http.nio.reactor.SessionRequestCallback; @@ -245,6 +246,7 @@ Mockito.any(SocketAddress.class), Mockito.any(), Mockito.any(SessionRequestCallback.class))). thenReturn(sessionRequest); + Mockito.when(ioreactor.getStatus()).thenReturn(IOReactorStatus.ACTIVE); final LocalSessionPool pool = new LocalSessionPool(ioreactor, 2, 10); final Future future = pool.lease("somehost", null);