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: [email protected]
For additional commands, e-mail: [email protected]