Author: markt
Date: Fri Apr 27 12:20:48 2018
New Revision: 1830336

URL: http://svn.apache.org/viewvc?rev=1830336&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62332
Ensure WebSocket connections are closed after an I/O error is experienced 
reading from the client.

Modified:
    
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: 
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1830336&r1=1830335&r2=1830336&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java 
(original)
+++ 
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java 
Fri Apr 27 12:20:48 2018
@@ -147,22 +147,14 @@ public class WsHttpUpgradeHandler implem
                 try {
                     return wsFrame.notifyDataAvailable();
                 } catch (WsIOException ws) {
-                    CloseReason cr = ws.getCloseReason();
-                    close(cr);
-                    // If the close was abnormal, close the socket.
-                    // Don't wait for a close response from the client that
-                    // might never arrive.
-                    if (cr.getCloseCode() == CloseCodes.CLOSED_ABNORMALLY) {
-                        return SocketState.CLOSED;
-                    }
+                    close(ws.getCloseReason());
                 } catch (IOException ioe) {
                     onError(ioe);
                     CloseReason cr = new CloseReason(
                             CloseCodes.CLOSED_ABNORMALLY, ioe.getMessage());
                     close(cr);
-                    return SocketState.CLOSED;
                 }
-                break;
+                return SocketState.CLOSED;
             case OPEN_WRITE:
                 wsRemoteEndpointServer.onWritePossible(false);
                 break;

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1830336&r1=1830335&r2=1830336&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Apr 27 12:20:48 2018
@@ -136,6 +136,10 @@
         that didn't correctly handle a final empty message part in all
         circumstances when using <code>PerMessageDeflate</code>. (markt)
       </fix>
+      <fix>
+        <bug>62332</bug>: Ensure WebSocket connections are closed after an I/O
+        error is experienced reading from the client. (markt)
+      </fix>
     </changelog>
   </subsection>
 </section>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to