Author: markt Date: Sun Dec 18 09:08:06 2016 New Revision: 1774866 URL: http://svn.apache.org/viewvc?rev=1774866&view=rev Log: Fix edge case spotted investigating CI test failures. Correctly handle blocking WebSocket writes when the write times out just before the write is attempted.
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java?rev=1774866&r1=1774865&r2=1774866&view=diff ============================================================================== --- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java (original) +++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java Sun Dec 18 09:08:06 2016 @@ -77,7 +77,7 @@ public class WsRemoteEndpointImplServer // Blocking for (ByteBuffer buffer : buffers) { long timeout = blockingWriteTimeoutExpiry - System.currentTimeMillis(); - if (timeout < 0) { + if (timeout <= 0) { SendResult sr = new SendResult(new SocketTimeoutException()); handler.onResult(sr); return; @@ -86,7 +86,7 @@ public class WsRemoteEndpointImplServer try { socketWrapper.write(true, buffer); timeout = blockingWriteTimeoutExpiry - System.currentTimeMillis(); - if (timeout < 0) { + if (timeout <= 0) { SendResult sr = new SendResult(new SocketTimeoutException()); handler.onResult(sr); return; Modified: tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml?rev=1774866&r1=1774865&r2=1774866&view=diff ============================================================================== --- tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml Sun Dec 18 09:08:06 2016 @@ -94,6 +94,14 @@ </fix> </changelog> </subsection> + <subseciton name="WebSocket"> + <changelog> + <fix> + Correctly handle blocking WebSocket writes when the write times out just + before the write is attempted. (markt) + </fix> + </changelog> + </subseciton> <subsection name="Web Applications"> <changelog> <add> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org