HTTPCORE-379: shut down non-blocking server side connection in case of an i/o or runtime error to avoid an infinite loop in the i/o reactor trying to flush buffered output Contributed by Dmitry Potapov <potapov.d at gmail.com> git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpcore/branches/4.3.x@1590620 13f79535-47bb-0310-9956-ffa450edef68 Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/repo Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/commit/f4efa0c1 Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/tree/f4efa0c1 Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/diff/f4efa0c1 Branch: refs/heads/4.3.x Commit: f4efa0c1ffd0cfad540af1b21596ac3f24489a7e Parents: 3dd3189 Author: Oleg Kalnichevski <ol...@apache.org> Authored: Mon Apr 28 12:58:23 2014 +0000 Committer: Oleg Kalnichevski <ol...@apache.org> Committed: Mon Apr 28 12:58:23 2014 +0000 ---------------------------------------------------------------------- .../main/java/org/apache/http/nio/protocol/HttpAsyncService.java | 2 +- .../java/org/apache/http/nio/protocol/TestHttpAsyncService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/f4efa0c1/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java ---------------------------------------------------------------------- diff --git a/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java b/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java index ae965e0..bc90373 100644 --- a/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java +++ b/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java @@ -237,7 +237,7 @@ public class HttpAsyncService implements NHttpServerEventHandler { || state.getResponseState().compareTo(MessageState.INIT) > 0) { // There is not much that we can do if a response // has already been submitted - closeConnection(conn); + shutdownConnection(conn); } else { final HttpContext context = state.getContext(); final HttpAsyncResponseProducer responseProducer = handleException( http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/f4efa0c1/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java ---------------------------------------------------------------------- diff --git a/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java b/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java index d88b158..e831829 100644 --- a/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java +++ b/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java @@ -230,7 +230,7 @@ public class TestHttpAsyncService { Assert.assertEquals(MessageState.READY, state.getRequestState()); Assert.assertEquals(MessageState.READY, state.getResponseState()); - Mockito.verify(this.conn).close(); + Mockito.verify(this.conn).shutdown(); Mockito.verify(this.requestConsumer).failed(httpex); Mockito.verify(this.requestConsumer).close(); Mockito.verify(this.responseProducer).failed(httpex);