Author: markt
Date: Wed Aug 10 22:44:46 2016
New Revision: 1755890

URL: http://svn.apache.org/viewvc?rev=1755890&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=59908
Ensure that a reason phrase is included in the close message if a session is 
closed due to a timeout.

Modified:
    tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java
    tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java?rev=1755890&r1=1755889&r2=1755890&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java Wed 
Aug 10 22:44:46 2016
@@ -25,11 +25,15 @@ import java.util.concurrent.TimeoutExcep
 import javax.websocket.SendHandler;
 import javax.websocket.SendResult;
 
+import org.apache.naming.StringManager;
+
 /**
  * Converts a Future to a SendHandler.
  */
 class FutureToSendHandler implements Future<Void>, SendHandler {
 
+    private static final StringManager sm = 
StringManager.getManager(FutureToSendHandler.class);
+
     private final CountDownLatch latch = new CountDownLatch(1);
     private final WsSession wsSession;
     private volatile SendResult result = null;
@@ -96,7 +100,8 @@ class FutureToSendHandler implements Fut
 
         }
         if (retval == false) {
-            throw new TimeoutException();
+            throw new 
TimeoutException(sm.getString("futureToSendHandler.timeout",
+                    Long.valueOf(timeout), unit.toString().toLowerCase()));
         }
         if (result.getException() != null) {
             throw new ExecutionException(result.getException());

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties?rev=1755890&r1=1755889&r2=1755890&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties Wed 
Aug 10 22:44:46 2016
@@ -34,6 +34,8 @@ backgroundProcessManager.processFailed=A
 
 caseInsensitiveKeyMap.nullKey=Null keys are not permitted
 
+futureToSendHandler.timeout=Operation timed out after waiting [{0}] [{1}] to 
complete
+
 perMessageDeflate.deflateFailed=Failed to decompress a compressed WebSocket 
frame
 perMessageDeflate.duplicateParameter=Duplicate definition of the [{0}] 
extension parameter
 perMessageDeflate.invalidWindowSize=An invalid windows of [{1}] size was 
specified for [{0}]. Valid values are whole numbers from 8 to 15 inclusive.

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1755890&r1=1755889&r2=1755890&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Aug 10 22:44:46 2016
@@ -163,6 +163,14 @@
       </fix>
     </changelog>
   </subsection>
+  <subsection name="WebSocket">
+    <changelog>
+      <fix>
+        <bug>59908</bug>: Ensure that a reason phrase is included in the close
+        message if a session is closed due to a timeout. (markt)
+      </fix>
+    </changelog>
+  </subsection>
   <subsection name="Web applications">
     <changelog>
       <fix>



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

Reply via email to