From: Fabian Lange Date: Wed, 17 Jul 2013 09:44:57 +0000 (+0200) Subject: Fixes parsing of multiple push messages in streaming mode (#12197) X-Git-Tag: 7.1.2~7 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=326bbb5e91564a39553b13f5a3a00b7ff5dd40ec;p=vaadin-framework.git Fixes parsing of multiple push messages in streaming mode (#12197) The current atmosphere code can handle messages split up using the message length header. But it does not handle the case where the header is actually split up itself. This patch solves it by making sure the length header stays intact. Corresponding atmosphere ticket: https://github.com/Atmosphere/atmosphere/issues/1199 Change-Id: If22c42ea63b0749c68df19c869b316f9b69f4317 --- diff --git a/WebContent/VAADIN/jquery.atmosphere.js b/WebContent/VAADIN/jquery.atmosphere.js index 28a7d033bd..b2dd99f5d2 100644 --- a/WebContent/VAADIN/jquery.atmosphere.js +++ b/WebContent/VAADIN/jquery.atmosphere.js @@ -1219,8 +1219,15 @@ jQuery.atmosphere = function() { messages.push(message.substring(0, messageLength)); } - if (messages.length == 0 || (messageStart != -1 && message.length != 0 && messageLength != message.length)){ - response.partialMessage = messageLength + request.messageDelimiter + message ; + if (messages.length == 0 || (message.length != 0 && messageLength != message.length)){ + if (messageStart == -1) { + // http://dev.vaadin.com/ticket/12197 + // partialMessage must contain length header of next message + // it starts at the end of the last message + response.partialMessage = message.substring(messageLength); + } else { + response.partialMessage = messageLength + request.messageDelimiter + message ; + } } else { response.partialMessage = ""; }