Repository: wicket Updated Branches: refs/heads/wicket-6.x f5ce3f27c -> 14b2db712
WICKET-5688 Restore the functionality an IPageManager to be able to clean all data/pages for the current session Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/14b2db71 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/14b2db71 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/14b2db71 Branch: refs/heads/wicket-6.x Commit: 14b2db712e1cc432327157c4cd3bd5de00a85b23 Parents: f5ce3f2 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Fri Aug 29 09:42:30 2014 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Fri Aug 29 09:42:30 2014 +0300 ---------------------------------------------------------------------- .../java/org/apache/wicket/Application.java | 1 - .../apache/wicket/page/PageStoreManager.java | 22 +++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/14b2db71/wicket-core/src/main/java/org/apache/wicket/Application.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/Application.java b/wicket-core/src/main/java/org/apache/wicket/Application.java index b284afc..ed7f0ec 100644 --- a/wicket-core/src/main/java/org/apache/wicket/Application.java +++ b/wicket-core/src/main/java/org/apache/wicket/Application.java @@ -483,7 +483,6 @@ public abstract class Application implements UnboundListener, IEventSink @Override public void sessionUnbound(final String sessionId) { - internalGetPageManager().sessionExpired(sessionId); } http://git-wip-us.apache.org/repos/asf/wicket/blob/14b2db71/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java b/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java index da98592..8e2da82 100644 --- a/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java +++ b/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java @@ -41,6 +41,8 @@ public class PageStoreManager extends AbstractPageManager */ private static final ConcurrentMap<String, PageStoreManager> managers = new ConcurrentHashMap<String, PageStoreManager>(); + private static final String ATTRIBUTE_NAME = "wicket:persistentPageManagerData"; + private final IPageStore pageStore; private final String applicationName; @@ -316,6 +318,11 @@ public class PageStoreManager extends AbstractPageManager } } + private String getAttributeName() + { + return ATTRIBUTE_NAME + " - " + applicationName; + } + /** * {@link RequestAdapter} for {@link PageStoreManager} * @@ -323,13 +330,6 @@ public class PageStoreManager extends AbstractPageManager */ protected class PersistentRequestAdapter extends RequestAdapter { - private static final String ATTRIBUTE_NAME = "wicket:persistentPageManagerData"; - - private String getAttributeName() - { - return ATTRIBUTE_NAME + " - " + applicationName; - } - /** * Construct. * @@ -439,7 +439,13 @@ public class PageStoreManager extends AbstractPageManager @Override public void sessionExpired(String sessionId) { - // nothing to do, the SessionEntry will listen for it to become unbound by itself + RequestAdapter requestAdapter = getRequestAdapter(); + String sessionEntryAttributeName = getAttributeName(); + Serializable sessionEntry = requestAdapter.getSessionAttribute(sessionEntryAttributeName); + if (sessionEntry instanceof SessionEntry) + { + ((SessionEntry)sessionEntry).valueUnbound(null); + } } /**
