You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2016/12/18 09:08:06 UTC

svn commit: r1774866 - in /tomcat/tc8.5.x/trunk: java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java webapps/docs/changelog.xml

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org