Author: kwall
Date: Tue Jan 12 12:40:54 2016
New Revision: 1724216

URL: http://svn.apache.org/viewvc?rev=1724216&view=rev
Log:
QPID-6975: Prevent an open connection spinning on the selector after an SSL 
close_notify

Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java?rev=1724216&r1=1724215&r2=1724216&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
 Tue Jan 12 12:40:54 2016
@@ -77,7 +77,7 @@ public class NonBlockingConnectionTLSDel
     @Override
     public boolean readyForRead()
     {
-        return _sslEngine.getHandshakeStatus() != 
SSLEngineResult.HandshakeStatus.NEED_WRAP && (_status == null || 
_status.getStatus() != SSLEngineResult.Status.CLOSED);
+        return _sslEngine.getHandshakeStatus() != 
SSLEngineResult.HandshakeStatus.NEED_WRAP;
     }
 
     @Override
@@ -95,8 +95,10 @@ public class NonBlockingConnectionTLSDel
             _status = _netInputBuffer.decryptSSL(_sslEngine, 
_applicationBuffer);
             if (_status.getStatus() == SSLEngineResult.Status.CLOSED)
             {
-                // KW If SSLEngine changes state to CLOSED, what will ever set 
_closed to true?
-                LOGGER.debug("SSLEngine closed");
+                int remaining = _netInputBuffer.remaining();
+                _netInputBuffer.position(_netInputBuffer.limit());
+                // We'd usually expect no more bytes to be sent following a 
close_notify
+                LOGGER.debug("SSLEngine closed, discarded {} byte(s)", 
remaining);
             }
 
             tasksRun = runSSLEngineTasks(_status);



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to