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);
+               }
        }
 
        /**

Reply via email to