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 2011/07/23 21:52:25 UTC

svn commit: r1150208 - in /httpcomponents/httpcore/branches/4.1.x: ./ RELEASE_NOTES.txt httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java

Author: olegk
Date: Sat Jul 23 19:52:24 2011
New Revision: 1150208

URL: http://svn.apache.org/viewvc?rev=1150208&view=rev
Log:
HTTPCORE-266: SSLIOSession does not correctly terminate if the opposite end shuts down connection without sending 'close notify' message causing an infinite loop in the I/O dispatch thread

Modified:
    httpcomponents/httpcore/branches/4.1.x/   (props changed)
    httpcomponents/httpcore/branches/4.1.x/RELEASE_NOTES.txt
    httpcomponents/httpcore/branches/4.1.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java

Propchange: httpcomponents/httpcore/branches/4.1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Jul 23 19:52:24 2011
@@ -1,2 +1,2 @@
 /httpcomponents/httpcore/branches/ibm_compat_branch:755687-758898
-/httpcomponents/httpcore/trunk:1102241-1102657,1133031-1134569,1134571,1139799-1140255
+/httpcomponents/httpcore/trunk:1102241-1102657,1133031-1134569,1134571,1139799-1140255,1149742-1150202

Modified: httpcomponents/httpcore/branches/4.1.x/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.1.x/RELEASE_NOTES.txt?rev=1150208&r1=1150207&r2=1150208&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.1.x/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpcore/branches/4.1.x/RELEASE_NOTES.txt Sat Jul 23 19:52:24 2011
@@ -1,3 +1,13 @@
+Release 4.1.3
+-------------------
+
+This is an emergency release that fixes a severe regression in the non-blocking SSL I/O code 
+introduced in release 4.1.2.
+
+* [HTTPCORE-266] SSLIOSession does not correctly terminate if the opposite end shuts down connection 
+  without sending a 'close notify' message causing an infinite loop in the I/O dispatch thread.
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
+
 Release 4.1.2
 -------------------
 

Modified: httpcomponents/httpcore/branches/4.1.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/branches/4.1.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java?rev=1150208&r1=1150207&r2=1150208&view=diff
==============================================================================
--- httpcomponents/httpcore/branches/4.1.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java (original)
+++ httpcomponents/httpcore/branches/4.1.x/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java Sat Jul 23 19:52:24 2011
@@ -189,8 +189,8 @@ public class SSLIOSession implements IOS
     }
 
     private void updateEventMask() {
-        if (this.status == CLOSING &&
-                this.sslEngine.isInboundDone() && this.sslEngine.isOutboundDone()) {
+        if (this.status == CLOSING && this.sslEngine.isOutboundDone()
+                && (this.endOfStream || this.sslEngine.isInboundDone())) {
             this.status = CLOSED;
         }
         if (this.status == CLOSED) {