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()
{