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 2018/12/11 08:33:10 UTC

httpcomponents-core git commit: HTTPCORE-564: fixed deadlock in IOSessionImpl caused by concurrent session closure and i/o reactor shutdown

Repository: httpcomponents-core
Updated Branches:
  refs/heads/4.4.x ee290a222 -> 85ae13b3b


HTTPCORE-564: fixed deadlock in IOSessionImpl caused by concurrent session closure and i/o reactor shutdown


Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/commit/85ae13b3
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/tree/85ae13b3
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/diff/85ae13b3

Branch: refs/heads/4.4.x
Commit: 85ae13b3b8eff663dbbe9ba82d5694068c72183f
Parents: ee290a2
Author: Oleg Kalnichevski <ol...@apache.org>
Authored: Thu Dec 6 10:25:07 2018 +0100
Committer: Oleg Kalnichevski <ol...@apache.org>
Committed: Tue Dec 11 09:32:54 2018 +0100

----------------------------------------------------------------------
 .../java/org/apache/http/impl/nio/reactor/IOSessionImpl.java     | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/85ae13b3/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java
----------------------------------------------------------------------
diff --git a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java
index 01c8a8f..a42ceb0 100644
--- a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java
+++ b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java
@@ -38,8 +38,8 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.http.annotation.ThreadingBehavior;
 import org.apache.http.annotation.Contract;
+import org.apache.http.annotation.ThreadingBehavior;
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.reactor.SessionBufferStatus;
 import org.apache.http.nio.reactor.SocketAccessor;
@@ -216,8 +216,6 @@ public class IOSessionImpl implements IOSession, SocketAccessor {
                 return;
             }
             this.status = CLOSED;
-        }
-        synchronized (this.key) {
             this.key.cancel();
             try {
                 this.key.channel().close();