aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTatu Lund <tatu@vaadin.com>2021-01-07 13:21:46 +0200
committerGitHub <noreply@github.com>2021-01-07 13:21:46 +0200
commit21ff79aea40e2a3d998449efbae780dca3eb987e (patch)
treeba327b73054fde32ef92c0b1575f5ab67a803272
parenta250bde2bf0ae47368e3c8d0f339567254b40262 (diff)
downloadvaadin-framework-21ff79aea40e2a3d998449efbae780dca3eb987e.tar.gz
vaadin-framework-21ff79aea40e2a3d998449efbae780dca3eb987e.zip
Move call to getMessageHandler().onResynchronize(); to right place (#12178)
https://github.com/vaadin/framework/pull/12043 changed resync message sending to be deferred to queue. Now also the setting of the semaphor in message handler needs to be deferred to its right place. Otherwise there is possibility for a timing glitch. I.e. MessageHandler is set to resync handling mode before message is actually send. Fixes: https://github.com/vaadin/framework/issues/12151
-rw-r--r--client/src/main/java/com/vaadin/client/communication/MessageSender.java2
-rw-r--r--uitest/src/main/java/com/vaadin/tests/push/PushWithPreserveOnRefresh.java4
2 files changed, 4 insertions, 2 deletions
diff --git a/client/src/main/java/com/vaadin/client/communication/MessageSender.java b/client/src/main/java/com/vaadin/client/communication/MessageSender.java
index 9a443adb2e..969e38ef5d 100644
--- a/client/src/main/java/com/vaadin/client/communication/MessageSender.java
+++ b/client/src/main/java/com/vaadin/client/communication/MessageSender.java
@@ -127,6 +127,7 @@ public class MessageSender {
}
if (resynchronizeRequested) {
getLogger().info("Resynchronizing from server");
+ getMessageHandler().onResynchronize();
extraJson.put(ApplicationConstants.RESYNCHRONIZE_ID, true);
resynchronizeRequested = false;
}
@@ -356,7 +357,6 @@ public class MessageSender {
* state from the server
*/
public void resynchronize() {
- getMessageHandler().onResynchronize();
getLogger().info("Resynchronize from server requested");
resynchronizeRequested = true;
sendInvocationsToServer();
diff --git a/uitest/src/main/java/com/vaadin/tests/push/PushWithPreserveOnRefresh.java b/uitest/src/main/java/com/vaadin/tests/push/PushWithPreserveOnRefresh.java
index a9b688626a..8d870f72bc 100644
--- a/uitest/src/main/java/com/vaadin/tests/push/PushWithPreserveOnRefresh.java
+++ b/uitest/src/main/java/com/vaadin/tests/push/PushWithPreserveOnRefresh.java
@@ -3,12 +3,13 @@ package com.vaadin.tests.push;
import com.vaadin.annotations.PreserveOnRefresh;
import com.vaadin.annotations.Push;
import com.vaadin.server.VaadinRequest;
+import com.vaadin.shared.ui.ui.Transport;
import com.vaadin.tests.components.AbstractReindeerTestUI;
import com.vaadin.tests.util.Log;
import com.vaadin.ui.Label;
@PreserveOnRefresh
-@Push
+@Push(transport = Transport.WEBSOCKET_XHR)
public class PushWithPreserveOnRefresh extends AbstractReindeerTestUI {
private Log log = new Log(5);
@@ -16,6 +17,7 @@ public class PushWithPreserveOnRefresh extends AbstractReindeerTestUI {
@Override
protected void setup(VaadinRequest request) {
+ setTheme("valo");
// Internal parameter sent by vaadinBootstrap.js,
addComponent(new Label("window.name: " + request.getParameter("v-wn")));
addComponent(new Label("UI id: " + getUIId()));