diff options
author | Matti Tahvonen <matti.tahvonen@itmill.com> | 2009-09-28 13:21:32 +0000 |
---|---|---|
committer | Matti Tahvonen <matti.tahvonen@itmill.com> | 2009-09-28 13:21:32 +0000 |
commit | d4493a155dcbf2a0c03623376e7ca49699ab8225 (patch) | |
tree | a76951af51793bc2ee61491cee08b03b40523573 /src | |
parent | 59d88071fd7d3004f08d91c406c7f27abc179691 (diff) | |
download | vaadin-framework-d4493a155dcbf2a0c03623376e7ca49699ab8225.tar.gz vaadin-framework-d4493a155dcbf2a0c03623376e7ca49699ab8225.zip |
cleans cache on some unclean reloads
svn changeset:8956/svn branch:2009-09-widget-packaging_3332
Diffstat (limited to 'src')
-rw-r--r-- | src/com/vaadin/terminal/gwt/server/CommunicationManager.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/com/vaadin/terminal/gwt/server/CommunicationManager.java b/src/com/vaadin/terminal/gwt/server/CommunicationManager.java index 11aec9ed28..4af1b05fe9 100644 --- a/src/com/vaadin/terminal/gwt/server/CommunicationManager.java +++ b/src/com/vaadin/terminal/gwt/server/CommunicationManager.java @@ -318,8 +318,8 @@ public class CommunicationManager implements Paintable.RepaintRequestListener, final PrintWriter outWriter, Window window, boolean analyzeLayouts) throws IOException, ServletException, PaintException { - // If repaint is requested, clean all ids in this root window if (repaintAll) { + // If repaint is requested, clean all ids in this root window for (final Iterator<String> it = idPaintableMap.keySet().iterator(); it .hasNext();) { final Component c = (Component) idPaintableMap.get(it.next()); @@ -328,6 +328,12 @@ public class CommunicationManager implements Paintable.RepaintRequestListener, paintableIdMap.remove(c); } } + // clean WindowCache + OpenWindowCache openWindowCache = currentlyOpenWindowsInClient + .get(window.getName()); + if (openWindowCache != null) { + openWindowCache.clear(); + } } // Removes application if it has stopped during variable changes @@ -1576,6 +1582,8 @@ public class CommunicationManager implements Paintable.RepaintRequestListener, /** * Helper class for terminal to keep track of data that client is expected * to know. + * + * TODO make customlayout templates (from theme) to be cached here. */ class OpenWindowCache { @@ -1590,5 +1598,9 @@ public class CommunicationManager implements Paintable.RepaintRequestListener, return res.add(object); } + public void clear() { + res.clear(); + } + } } |