|Summary:||Improper forced reading causing client read timeout|
|Product:||Tomcat 8||Reporter:||Jack <caijunj>|
|Component:||WebSocket||Assignee:||Tomcat Developers Mailing List <dev>|
Description Jack 2016-03-04 19:38:12 UTC
In source code , the "forceRead" section (from Line 265 to 273, as of today) does not reset "forceRead" to false after a forced read. This causes improper forced reading in follow-up loops even though there are still data in the socketChannel left over from last unwrap. As a result, it causes timeout in the WsWebSocketContainer.processResponse() method, and prevents websocket hand-shaking from completion.  http://svn.apache.org/repos/asf/tomcat/trunk/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java
Comment 1 Jack 2016-03-04 19:41:02 UTC
Note the same issue applies to other versions as well.
Comment 2 Mark Thomas 2016-03-07 12:33:52 UTC
Thanks for the report. This has been fixed in 9.0.x for 9.0.0.M4 onwards, 8.0.x for 8.0.33 onwards and 7.0.x for 7.0.69 onwards.