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:31:43 UTC

httpcomponents-core git commit: Bug fix: keep SSL i/o session in 'CLOSING' state as long as there is buffered application data; that fixes intermittently failing pipelining test case

Repository: httpcomponents-core
Updated Branches:
  refs/heads/4.4.x e9a57dbed -> 5e73e05e6


Bug fix: keep SSL i/o session in 'CLOSING' state as long as there is buffered application data; that fixes intermittently failing pipelining test case


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

Branch: refs/heads/4.4.x
Commit: 5e73e05e6d9b91f6718b02a8d6178f24e98e07cc
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:30:50 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/5e73e05e/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/5e73e05e/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());
         }