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/08 09:45:18 UTC

httpcomponents-core git commit: Bug fix: keep SSL i/o session in 'CLOSING' state as long as there is buffered application data [Forced Update!]

Repository: httpcomponents-core
Updated Branches:
  refs/heads/4.4.x 5e73e05e6 -> 81913db04 (forced update)


Bug fix: keep SSL i/o session in 'CLOSING' state as long as there is buffered application data


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

Branch: refs/heads/4.4.x
Commit: 81913db041ca5a8c73ba9f433f2db9a2fd2ee4be
Parents: e9a57db
Author: Oleg Kalnichevski <ol...@apache.org>
Authored: Sat Dec 8 10:30:50 2018 +0100
Committer: Oleg Kalnichevski <ol...@apache.org>
Committed: Sat Dec 8 10:43:10 2018 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java  | 4 +++-
 .../http/nio/integration/TestHttpAsyncHandlersPipelining.java    | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/81913db0/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java
----------------------------------------------------------------------
diff --git a/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java b/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java
index 9575d99..c3d1cf9 100644
--- a/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java
+++ b/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java
@@ -366,7 +366,9 @@ public class SSLIOSession implements IOSession, SessionBufferStatus, SocketAcces
             this.sslEngine.closeOutbound();
         }
         if (this.status == CLOSING && this.sslEngine.isOutboundDone()
-                && (this.endOfStream || this.sslEngine.isInboundDone())) {
+                && (this.endOfStream || this.sslEngine.isInboundDone())
+                && !this.inPlain.hasData()
+                && this.appBufferStatus != null && !this.appBufferStatus.hasBufferedInput()) {
             this.status = CLOSED;
         }
         // Abnormal session termination

http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/81913db0/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncHandlersPipelining.java
----------------------------------------------------------------------
diff --git a/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncHandlersPipelining.java b/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncHandlersPipelining.java
index 53d3689..f7494b0 100644
--- a/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncHandlersPipelining.java
+++ b/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncHandlersPipelining.java
@@ -405,7 +405,7 @@ public class TestHttpAsyncHandlersPipelining extends HttpCoreNIOTestBase {
             Assert.assertTrue(c1.isDone());
             Assert.assertNotNull(c1.getResult());
             Assert.assertTrue(c2.isDone());
-//            Assert.assertNotNull(c2.getResult());
+            Assert.assertNotNull(c2.getResult());
             Assert.assertTrue(c3.isDone());
             Assert.assertNull(c3.getResult());
         }