diff options
Diffstat (limited to 'server/src/com/vaadin/ui')
-rw-r--r-- | server/src/com/vaadin/ui/AbstractSplitPanel.java | 20 | ||||
-rw-r--r-- | server/src/com/vaadin/ui/ConnectorTracker.java | 17 | ||||
-rw-r--r-- | server/src/com/vaadin/ui/UI.java | 27 | ||||
-rw-r--r-- | server/src/com/vaadin/ui/themes/ValoTheme.java | 2 |
4 files changed, 33 insertions, 33 deletions
diff --git a/server/src/com/vaadin/ui/AbstractSplitPanel.java b/server/src/com/vaadin/ui/AbstractSplitPanel.java index 1c69ebf87e..09f881cf46 100644 --- a/server/src/com/vaadin/ui/AbstractSplitPanel.java +++ b/server/src/com/vaadin/ui/AbstractSplitPanel.java @@ -335,7 +335,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { * @return position of the splitter */ public float getSplitPosition() { - return getSplitterState().position; + return getSplitterState(false).position; } /** @@ -358,7 +358,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { * Allowed units are UNITS_PERCENTAGE and UNITS_PIXELS */ public void setMinSplitPosition(float pos, Unit unit) { - setSplitPositionLimits(pos, unit, getSplitterState().maxPosition, + setSplitPositionLimits(pos, unit, getSplitterState(false).maxPosition, posMaxUnit); } @@ -369,7 +369,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { * @return the minimum position of the splitter */ public float getMinSplitPosition() { - return getSplitterState().minPosition; + return getSplitterState(false).minPosition; } /** @@ -392,8 +392,8 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { * Allowed units are UNITS_PERCENTAGE and UNITS_PIXELS */ public void setMaxSplitPosition(float pos, Unit unit) { - setSplitPositionLimits(getSplitterState().minPosition, posMinUnit, pos, - unit); + setSplitPositionLimits(getSplitterState(false).minPosition, posMinUnit, + pos, unit); } /** @@ -403,7 +403,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { * @return the maximum position of the splitter */ public float getMaxSplitPosition() { - return getSplitterState().maxPosition; + return getSplitterState(false).maxPosition; } /** @@ -467,7 +467,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { * @return <code>true</code> if locked, <code>false</code> otherwise. */ public boolean isLocked() { - return getSplitterState().locked; + return getSplitterState(false).locked; } /** @@ -540,6 +540,10 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { } private SplitterState getSplitterState() { - return getState(false).splitterState; + return ((AbstractSplitPanelState) super.getState()).splitterState; + } + + private SplitterState getSplitterState(boolean markAsDirty) { + return ((AbstractSplitPanelState) super.getState(markAsDirty)).splitterState; } } diff --git a/server/src/com/vaadin/ui/ConnectorTracker.java b/server/src/com/vaadin/ui/ConnectorTracker.java index f7eae0013a..c0f973106b 100644 --- a/server/src/com/vaadin/ui/ConnectorTracker.java +++ b/server/src/com/vaadin/ui/ConnectorTracker.java @@ -774,7 +774,7 @@ public class ConnectorTracker implements Serializable { * concurrently or not. * @param lastSyncIdSeenByClient * the most recent sync id the client has seen at the time the - * request was sent + * request was sent, or -1 to ignore potential problems * @return <code>true</code> if the connector was removed before the client * had a chance to react to it. */ @@ -784,7 +784,8 @@ public class ConnectorTracker implements Serializable { assert getConnector(connectorId) == null : "Connector " + connectorId + " is still attached"; - boolean clientRequestIsTooOld = lastSyncIdSeenByClient < currentSyncId; + boolean clientRequestIsTooOld = lastSyncIdSeenByClient < currentSyncId + && lastSyncIdSeenByClient != -1; if (clientRequestIsTooOld) { /* * The headMap call is present here because we're only interested in @@ -823,6 +824,9 @@ public class ConnectorTracker implements Serializable { * packet is sent. If the state has changed on the server side since that, * the server can try to adjust the way it handles the actions from the * client side. + * <p> + * The sync id value <code>-1</code> is ignored to facilitate testing with + * pre-recorded requests. * * @see #setWritingResponse(boolean) * @see #connectorWasPresentAsRequestWasSent(String, long) @@ -846,6 +850,9 @@ public class ConnectorTracker implements Serializable { * Entries that both client and server agree upon are removed. Since * argument is the last sync id that the client has seen from the server, we * know that entries earlier than that cannot cause any problems anymore. + * <p> + * The sync id value <code>-1</code> is ignored to facilitate testing with + * pre-recorded requests. * * @see #connectorWasPresentAsRequestWasSent(String, long) * @since 7.2 @@ -854,6 +861,12 @@ public class ConnectorTracker implements Serializable { * server. */ public void cleanConcurrentlyRemovedConnectorIds(int lastSyncIdSeenByClient) { + if (lastSyncIdSeenByClient == -1) { + // Sync id checking is not in use, so we should just clear the + // entire map to avoid leaking memory + syncIdToUnregisteredConnectorIds.clear(); + return; + } /* * We remove all entries _older_ than the one reported right now, * because the remaining still contain components that might cause diff --git a/server/src/com/vaadin/ui/UI.java b/server/src/com/vaadin/ui/UI.java index 4bde8a95b3..a72cbe5c30 100644 --- a/server/src/com/vaadin/ui/UI.java +++ b/server/src/com/vaadin/ui/UI.java @@ -549,6 +549,8 @@ public abstract class UI extends AbstractSingleComponentContainer implements private boolean resizeLazy = false; + private String theme; + private Navigator navigator; private PushConnection pushConnection = null; @@ -631,7 +633,7 @@ public abstract class UI extends AbstractSingleComponentContainer implements this.embedId = embedId; // Actual theme - used for finding CustomLayout templates - getState(false).theme = request.getParameter("theme"); + theme = request.getParameter("theme"); getPage().init(request); @@ -1133,31 +1135,12 @@ public abstract class UI extends AbstractSingleComponentContainer implements } /** - * Gets the theme currently in use by this UI + * Gets the theme that was used when the UI was initialized. * * @return the theme name */ public String getTheme() { - return getState(false).theme; - } - - /** - * Sets the theme currently in use by this UI - * <p> - * Calling this method will remove the old theme (CSS file) from the - * application and add the new theme. - * <p> - * Note that this method is NOT SAFE to call in a portal environment or - * other environment where there are multiple UIs on the same page. The old - * CSS file will be removed even if there are other UIs on the page which - * are still using it. - * - * @since - * @param theme - * The new theme name - */ - public void setTheme(String theme) { - getState().theme = theme; + return theme; } /** diff --git a/server/src/com/vaadin/ui/themes/ValoTheme.java b/server/src/com/vaadin/ui/themes/ValoTheme.java index 51e2e283f2..63fa13dce4 100644 --- a/server/src/com/vaadin/ui/themes/ValoTheme.java +++ b/server/src/com/vaadin/ui/themes/ValoTheme.java @@ -38,7 +38,7 @@ import com.vaadin.ui.Table.ColumnHeaderMode; * * TODO link to Sass API documentation * - * @since 7.3.0 + * @since 7.3 * @author Vaadin Ltd */ public class ValoTheme { |