aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2013-04-04 19:56:15 +0300
committerVaadin Code Review <review@vaadin.com>2013-04-05 07:10:48 +0000
commit874c76e4a51f07067a2351fe54d9cfa03f70e968 (patch)
treee8fd662ca26181e367a3dd6d26fcca5bcee8ea82
parent8466d23c5e3d6ca16c27262bf83869e4e4a79ec6 (diff)
downloadvaadin-framework-874c76e4a51f07067a2351fe54d9cfa03f70e968.tar.gz
vaadin-framework-874c76e4a51f07067a2351fe54d9cfa03f70e968.zip
Do not push only meta data to the client (#11490)
Change-Id: I589ede89583be90e99fbed6fe5c0c6c1ac4d7c0a
-rw-r--r--server/src/com/vaadin/ui/ConnectorTracker.java11
-rw-r--r--server/src/com/vaadin/ui/UI.java5
2 files changed, 15 insertions, 1 deletions
diff --git a/server/src/com/vaadin/ui/ConnectorTracker.java b/server/src/com/vaadin/ui/ConnectorTracker.java
index bd66f3b368..85cdcdf65c 100644
--- a/server/src/com/vaadin/ui/ConnectorTracker.java
+++ b/server/src/com/vaadin/ui/ConnectorTracker.java
@@ -32,9 +32,9 @@ import org.json.JSONException;
import org.json.JSONObject;
import com.vaadin.server.AbstractClientConnector;
-import com.vaadin.server.LegacyCommunicationManager;
import com.vaadin.server.ClientConnector;
import com.vaadin.server.GlobalResourceHandler;
+import com.vaadin.server.LegacyCommunicationManager;
import com.vaadin.server.StreamVariable;
/**
@@ -465,6 +465,15 @@ public class ConnectorTracker implements Serializable {
}
/**
+ * Checks if there a dirty connectors.
+ *
+ * @return true if there are dirty connectors, false otherwise
+ */
+ public boolean hasDirtyConnectors() {
+ return !getDirtyConnectors().isEmpty();
+ }
+
+ /**
* Returns a collection of those {@link #getDirtyConnectors() dirty
* connectors} that are actually visible to the client.
*
diff --git a/server/src/com/vaadin/ui/UI.java b/server/src/com/vaadin/ui/UI.java
index 162d072222..6b906b8eab 100644
--- a/server/src/com/vaadin/ui/UI.java
+++ b/server/src/com/vaadin/ui/UI.java
@@ -1141,6 +1141,11 @@ public abstract class UI extends AbstractSingleComponentContainer implements
public void push() {
VaadinSession session = getSession();
if (session != null) {
+ if (getConnectorTracker().hasDirtyConnectors()) {
+ // Do not push if there is nothing to push
+ return;
+ }
+
if (session.getPushMode() == PushMode.DISABLED) {
throw new IllegalStateException("Push not enabled");
}