This is an automated email from the ASF dual-hosted git repository.

svenmeier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/master by this push:
     new d95a3c5  WICKET-6933 use separate key for the default instance
d95a3c5 is described below

commit d95a3c526229092ecc035ca3e901f5d9a7d4e1c2
Author: Sven Meier <[email protected]>
AuthorDate: Wed Nov 10 22:11:55 2021 +0100

    WICKET-6933 use separate key for the default instance
---
 .../apache/wicket/DefaultPageManagerProvider.java  | 25 +++++++++++++++++++++-
 .../wicket/pageStore/InSessionPageStore.java       |  5 ++---
 2 files changed, 26 insertions(+), 4 deletions(-)

diff --git 
a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java 
b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
index 0b44073..11eeff1 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
@@ -147,7 +147,7 @@ public class DefaultPageManagerProvider implements 
IPageManagerProvider
         */
        protected IPageStore newCachingStore(IPageStore pageStore)
        {
-               return new CachingPageStore(pageStore, new 
InSessionPageStore(1));
+               return new CachingPageStore(pageStore, new InSessionCache());
        }
 
        /**
@@ -210,4 +210,27 @@ public class DefaultPageManagerProvider implements 
IPageManagerProvider
 
                return new DiskPageStore(application.getName(), 
fileStoreFolder, maxSizePerSession);
        }
+       
+       private static class InSessionCache extends InSessionPageStore {
+
+               private static final MetaDataKey<SessionData> KEY = new 
MetaDataKey<>()
+               {
+                       private static final long serialVersionUID = 1L;
+               };
+               
+               InSessionCache()
+               {
+                       super(1);
+               }
+
+               /**
+                * Use a separate key, so this store does not interfere with 
any additional {@link InSessionPageStore}
+                * the application might set up.
+                */
+               @Override
+               protected MetaDataKey<SessionData> getKey()
+               {
+                       return KEY;
+               }
+       }
 }
\ No newline at end of file
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/InSessionPageStore.java 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/InSessionPageStore.java
index af0fae8..50ae0af 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/InSessionPageStore.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/InSessionPageStore.java
@@ -172,9 +172,8 @@ public class InSessionPageStore implements IPageStore
        /**
         * Session data is stored under a {@link MetaDataKey}.
         * <p>
-        * In cases where more than one instance is used in an application 
(e.g. as a fast cache
-        * <em>and</em> a persistent store of serialized pages in the session), 
this method has to be
-        * overridden to provide a separate key for each instance.
+        * In the unlikely case that an application utilizes more than one 
instance of this store,
+        * this method has to be overridden to provide a separate key for each 
instance.
         */
        protected MetaDataKey<SessionData> getKey()
        {

Reply via email to