diff options
Diffstat (limited to 'server/src/main')
-rw-r--r-- | server/src/main/java/com/vaadin/server/LegacyCommunicationManager.java | 15 |
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 |