From: Leif Åstrand Date: Fri, 24 Aug 2012 08:46:23 +0000 (+0300) Subject: Don't ever send state diffs for JavaScript connectors (#9026) X-Git-Tag: 7.0.0.beta1~220^2~8^2~10 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=86bbe59bb855b6cf57486322bca92e2ace88e8a2;p=vaadin-framework.git Don't ever send state diffs for JavaScript connectors (#9026) --- diff --git a/server/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java b/server/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java index 7ea4a7d097..b2436b2ce4 100644 --- a/server/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java +++ b/server/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java @@ -1250,12 +1250,13 @@ public abstract class AbstractCommunicationManager implements Serializable { Class stateType = connector.getStateType(); Object diffState = connectorTracker.getDiffState(connector); if (diffState == null) { - diffState = new JSONObject(); // Use an empty state object as reference for full // repaints - boolean emptyInitialState = JavaScriptConnectorState.class + + boolean supportsDiffState = !JavaScriptConnectorState.class .isAssignableFrom(stateType); - if (!emptyInitialState) { + if (supportsDiffState) { + diffState = new JSONObject(); try { SharedState referenceState = stateType.newInstance(); diffState = JsonCodec.encode(referenceState, null, @@ -1266,8 +1267,8 @@ public abstract class AbstractCommunicationManager implements Serializable { "Error creating reference object for state of type " + stateType.getName()); } + connectorTracker.setDiffState(connector, diffState); } - connectorTracker.setDiffState(connector, diffState); } JSONObject stateJson = (JSONObject) JsonCodec.encode(state, diffState, stateType, root.getConnectorTracker());