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