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