Author: markt Date: Sun Mar 17 19:25:38 2013 New Revision: 1457529 URL: http://svn.apache.org/r1457529 Log: Fix parsing of HTTP headers. The parser was reading beyond the end of the HTTP response and swallowing and pipe-lined WebSocket messages.
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1457529&r1=1457528&r2=1457529&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Sun Mar 17 19:25:38 2013 @@ -76,7 +76,6 @@ public class WsWebSocketContainer private int processPeriod = 10; - @Override public Session connectToServer(Object pojo, URI path) throws DeploymentException { @@ -410,7 +409,7 @@ public class WsWebSocketContainer Future<Integer> written = channel.read(response); written.get(); response.flip(); - while (response.hasRemaining()) { + while (response.hasRemaining() && !readHeaders) { if (line == null) { line = readLine(response); } else { @@ -470,9 +469,12 @@ public class WsWebSocketContainer StringBuilder sb = new StringBuilder(); char c = 0; - while (response.hasRemaining() && c != 10) { + while (response.hasRemaining()) { c = (char) response.get(); sb.append(c); + if (c == 10) { + break; + } } return sb.toString(); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org