From 79c8c696c09b0a7cbe1f1863e6c7c165b2f5f19f Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 28 Apr 2015 23:50:19 +0300 Subject: Ensure browser does not re-use push connection after refresh (#14297, #14416) Change-Id: I99748db0f00a6b2189f557fa05a145906a841efc --- server/src/com/vaadin/server/communication/PushHandler.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'server/src') diff --git a/server/src/com/vaadin/server/communication/PushHandler.java b/server/src/com/vaadin/server/communication/PushHandler.java index 552f2e9e03..35bc3f2e55 100644 --- a/server/src/com/vaadin/server/communication/PushHandler.java +++ b/server/src/com/vaadin/server/communication/PushHandler.java @@ -79,12 +79,18 @@ public class PushHandler { resource.getResponse().setContentType("text/plain; charset=UTF-8"); VaadinSession session = ui.getSession(); - if (resource.transport() == TRANSPORT.STREAMING) { - // Must ensure that the streaming response contains + if (resource.transport() == TRANSPORT.STREAMING + || resource.transport() == TRANSPORT.LONG_POLLING) { + // Must ensure that the streaming/long-polling response contains // "Connection: close", otherwise iOS 6 will wait for the // response to this request before sending another request to // the same server (as it will apparently try to reuse the same - // connection) + // connection). + + // Other browsers might also try to re-use the same + // connection for fetching static files after refreshing, which + // will cause a failure in loading vaadinPush.js or + // vaadinBootstrap.js resource.getResponse().addHeader("Connection", "close"); } -- cgit v1.2.3