aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/main')
-rw-r--r--server/src/main/java/com/vaadin/server/LegacyCommunicationManager.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/server/src/main/java/com/vaadin/server/LegacyCommunicationManager.java b/server/src/main/java/com/vaadin/server/LegacyCommunicationManager.java
index 5cb90b428a..10ccb7726d 100644
--- a/server/src/main/java/com/vaadin/server/LegacyCommunicationManager.java
+++ b/server/src/main/java/com/vaadin/server/LegacyCommunicationManager.java
@@ -232,11 +232,26 @@ public class LegacyCommunicationManager implements Serializable {
if (cache == null) {
cache = new ClientCache();
uiToClientCache.put(uiId, cache);
+ uI.addDetachListener(event -> removeClientCache(uI));
}
return cache;
}
/**
+ * Clear out client cache for the given UI. This should be called when the
+ * UI is detached and the cache becomes obsolete.
+ *
+ * @param uI
+ * the UI whose client cache should be removed
+ * @deprecated because this cleanup is only needed for a deprecated feature
+ */
+ @Deprecated
+ private void removeClientCache(UI uI) {
+ Integer uiId = Integer.valueOf(uI.getUIId());
+ uiToClientCache.remove(uiId);
+ }
+
+ /**
* Checks if the connector is visible in context. For Components,
* {@link #isComponentVisibleToClient(Component)} is used. For other types
* of connectors, the contextual visibility of its first Component ancestor