This is an automated email from the ASF dual-hosted git repository.
mgrigorov 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 cd44134 Minor improvements in pageStore package
cd44134 is described below
commit cd441346709ba932d0870eaf72f048bfee51370a
Author: Martin Tzvetanov Grigorov <[email protected]>
AuthorDate: Thu Mar 26 07:58:14 2020 +0200
Minor improvements in pageStore package
* Remove ISerializer from some PageStore impls because it is not used anyway
* Use Java 8 diamonds where possible
* Fix javadoc errors
* Add empty default implementation for #detach() methods in interfaces. It
is implemented very rarely. In the current case only in Component.java
* Make some member fields 'final'
* Add null-checks for File.list() methods
* Use Java 8+ lambda methods where applicable
* Replace deprecated Mockito.verifyZeroInteractions() with
verifyNoInteractions()
---
.../org/apache/wicket/page/IManageablePage.java | 3 +-
.../pageStore/AbstractPersistentPageStore.java | 10 +++---
.../wicket/pageStore/AsynchronousPageStore.java | 39 +++++-----------------
.../apache/wicket/pageStore/CryptingPageStore.java | 8 ++---
.../wicket/pageStore/DefaultPageContext.java | 2 +-
.../org/apache/wicket/pageStore/DiskPageStore.java | 35 ++++---------------
.../org/apache/wicket/pageStore/FilePageStore.java | 34 +++----------------
.../apache/wicket/pageStore/GroupingPageStore.java | 10 +++---
.../org/apache/wicket/pageStore/IPageStore.java | 8 ++---
.../wicket/pageStore/IPersistentPageStore.java | 2 +-
.../apache/wicket/pageStore/InMemoryPageStore.java | 17 ++++------
.../wicket/pageStore/InSessionPageStore.java | 17 +++++-----
.../apache/wicket/pageStore/RequestPageStore.java | 6 ++--
.../apache/wicket/pageStore/SerializedPage.java | 7 +---
.../wicket/pageStore/SerializingPageStore.java | 4 +--
.../wicket/pageStore/crypt/DefaultCrypter.java | 4 ---
.../wicket/pageStore/disk/NestedFolders.java | 19 +++++------
.../wicket/pageStore/disk/PageWindowManager.java | 10 +++---
.../request/component/IRequestableComponent.java | 3 +-
.../wicket/request/component/IRequestablePage.java | 6 ++++
.../test/java/org/apache/wicket/MockComponent.java | 5 ---
.../wicket/page/PersistentPageManagerTest.java | 5 ---
.../pageStore/AsynchronousPageStoreTest.java | 5 ---
.../apache/wicket/pageStore/DiskPageStoreTest.java | 5 ++-
.../apache/wicket/pageStore/FilePageStoreTest.java | 4 +--
.../protocol/http/request/WebClientInfoTest.java | 2 +-
26 files changed, 89 insertions(+), 181 deletions(-)
diff --git
a/wicket-core/src/main/java/org/apache/wicket/page/IManageablePage.java
b/wicket-core/src/main/java/org/apache/wicket/page/IManageablePage.java
index 11c3756..c57bf3c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/page/IManageablePage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/page/IManageablePage.java
@@ -40,7 +40,8 @@ public interface IManageablePage extends IClusterable
* Detaches model after use. This is generally used to null out
transient references that can be
* re-attached later.
*/
- void detach();
+ default void detach()
+ {}
/**
* Sets whether or not the page is allowed to change its page id.
Implementations of this
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AbstractPersistentPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AbstractPersistentPageStore.java
index 17541ee..74df252 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AbstractPersistentPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AbstractPersistentPageStore.java
@@ -165,7 +165,7 @@ public abstract class AbstractPersistentPageStore
implements IPageStore
/**
* Create an identifier for the given context.
* <p>
- * Default implementation uses {@link IPageContext#getSessionId()}.
+ * Default implementation uses {@link
IPageContext#getSessionId(boolean)}}.
*
* @param context context
* @return identifier for the session
@@ -224,11 +224,11 @@ public abstract class AbstractPersistentPageStore
implements IPageStore
protected static class PersistedPage implements IPersistedPage
{
- private int pageId;
+ private final int pageId;
- private String pageType;
+ private final String pageType;
- private long pageSize;
+ private final long pageSize;
public PersistedPage(int pageId, String pageType, long pageSize)
{
@@ -256,4 +256,4 @@ public abstract class AbstractPersistentPageStore
implements IPageStore
}
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
index caf17ce..735683c 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
@@ -18,7 +18,6 @@ package org.apache.wicket.pageStore;
import java.io.Serializable;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
@@ -102,8 +101,8 @@ public class AsynchronousPageStore extends
DelegatingPageStore
/**
*
- * @param pageId
* @param sessionId
+ * @param pageId
* @return generated key
*/
private static String getKey(final String sessionId, final int pageId)
@@ -145,8 +144,6 @@ public class AsynchronousPageStore extends
DelegatingPageStore
}
/**
- *
- * @param entry
* @return generated key
*/
private String getKey()
@@ -189,12 +186,9 @@ public class AsynchronousPageStore extends
DelegatingPageStore
if (asynchronous)
{
value = (T)attributeCache.get(key);
- if (value == null )
+ if (value == null && defaultValue.get() != null)
{
- if (defaultValue.get() != null)
- {
throw new
WicketRuntimeException("session attribute can not be changed asynchronuously");
- }
}
} else {
value = context.getSessionAttribute(key,
defaultValue);
@@ -218,12 +212,9 @@ public class AsynchronousPageStore extends
DelegatingPageStore
if (asynchronous)
{
value = context.getSessionData(key, () -> null);
- if (value == null )
+ if (value == null && defaultValue.get() != null)
{
- if (defaultValue.get() != null)
- {
throw new
WicketRuntimeException("session data can not be changed asynchronuously");
- }
}
}
else
@@ -340,13 +331,10 @@ public class AsynchronousPageStore extends
DelegatingPageStore
}
String key = getKey(sessionId, page.getPageId());
- if (key != null)
+ PendingAdd entry = queueMap.remove(key);
+ if (entry != null)
{
- PendingAdd entry = queueMap.remove(key);
- if (entry != null)
- {
- queue.remove(entry);
- }
+ queue.remove(entry);
}
getDelegate().removePage(context, page);
@@ -394,18 +382,9 @@ public class AsynchronousPageStore extends
DelegatingPageStore
if (sessionId == null) {
return;
}
-
- Iterator<PendingAdd> iterator = queue.iterator();
- while (iterator.hasNext())
- {
- PendingAdd add = iterator.next();
-
- if (add.sessionId.equals(sessionId))
- {
- iterator.remove();
- }
- }
+
+ queue.removeIf(add -> add.sessionId.equals(sessionId));
getDelegate().removeAllPages(context);
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/CryptingPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/CryptingPageStore.java
index dc0d6eb..5b697b6 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/CryptingPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/CryptingPageStore.java
@@ -41,7 +41,7 @@ import org.apache.wicket.util.lang.Args;
*/
public class CryptingPageStore extends DelegatingPageStore
{
- private static final MetaDataKey<SessionData> KEY = new
MetaDataKey<SessionData>()
+ private static final MetaDataKey<SessionData> KEY = new MetaDataKey<>()
{
private static final long serialVersionUID = 1L;
};
@@ -53,8 +53,8 @@ public class CryptingPageStore extends DelegatingPageStore
/**
* @param delegate
* store to delegate to
- * @param applicationName
- * name of application
+ * @param application
+ * the application
*/
public CryptingPageStore(IPageStore delegate, Application application)
{
@@ -163,4 +163,4 @@ public class CryptingPageStore extends DelegatingPageStore
return crypter.decrypt(encrypted, key);
}
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageContext.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageContext.java
index 57e7e3c..780f440 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageContext.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageContext.java
@@ -33,7 +33,7 @@ public class DefaultPageContext implements IPageContext
{
/**
- * @see org.apache.wicket.pageStore.IPageContext#getSessionId()
+ * @see org.apache.wicket.pageStore.IPageContext#getSessionId(boolean)
*/
@Override
public String getSessionId(boolean bind)
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskPageStore.java
index 033e1cc..d6bda8f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskPageStore.java
+++ b/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskPageStore.java
@@ -18,7 +18,6 @@ package org.apache.wicket.pageStore;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -42,7 +41,6 @@ import org.apache.wicket.pageStore.disk.NestedFolders;
import org.apache.wicket.pageStore.disk.PageWindowManager;
import org.apache.wicket.pageStore.disk.PageWindowManager.FileWindow;
import org.apache.wicket.protocol.http.PageExpiredException;
-import org.apache.wicket.serialize.ISerializer;
import org.apache.wicket.util.file.Files;
import org.apache.wicket.util.io.IOUtils;
import org.apache.wicket.util.lang.Args;
@@ -59,7 +57,7 @@ import org.slf4j.LoggerFactory;
* Since Ajax requests do not change the id of a page, {@link DiskPageStore}
offers an optimization to overwrite the most recently written
* page, if it has the same id as a new page to write.<p>
* However this does not help in case of alternating requests between multiple
browser windows: In this case requests are processed for
- * different page ids and the oldests pages are constantly overwritten (this
can easily happen with Ajax timers on one or more pages).
+ * different page ids and the oldest pages are constantly overwritten (this
can easily happen with Ajax timers on one or more pages).
* This leads to pages with identical id superfluously kept in the file, while
older pages are prematurely expelled.
* Any following request to these older pages will then fail with {@link
PageExpiredException}.
*/
@@ -92,24 +90,6 @@ public class DiskPageStore extends
AbstractPersistentPageStore implements IPersi
*/
public DiskPageStore(String applicationName, File fileStoreFolder,
Bytes maxSizePerSession)
{
- this(applicationName, fileStoreFolder, maxSizePerSession, null);
- }
-
- /**
- * Create a store to disk.
- *
- * @param applicationName
- * name of application
- * @param fileStoreFolder
- * folder to store to
- * @param maxSizePerSession
- * maximum size per session
- * @param serializer
- * for serialization of pages
- */
- public DiskPageStore(String applicationName, File fileStoreFolder,
Bytes maxSizePerSession,
- ISerializer serializer)
- {
super(applicationName);
this.folders = new NestedFolders(new File(fileStoreFolder,
applicationName + "-filestore"));
@@ -285,7 +265,7 @@ public class DiskPageStore extends
AbstractPersistentPageStore implements IPersi
{
ObjectOutputStream oos = new
ObjectOutputStream(stream);
- List<DiskData> list = new
ArrayList<>(diskDatas.size());
+ ArrayList<DiskData> list = new
ArrayList<>(diskDatas.size());
for (DiskData diskData : diskDatas.values())
{
if (diskData.sessionIdentifier != null)
@@ -310,7 +290,7 @@ public class DiskPageStore extends
AbstractPersistentPageStore implements IPersi
/**
*
- * @param session
+ * @param sessionIdentifier
* key
* @return a list of the last N page windows
*/
@@ -499,15 +479,14 @@ public class DiskPageStore extends
AbstractPersistentPageStore implements IPersi
if (create || file.exists())
{
String mode = create ? "rw" : "r";
- try
+ try (RandomAccessFile randomAccessFile = new
RandomAccessFile(file, mode))
{
- RandomAccessFile randomAccessFile = new
RandomAccessFile(file, mode);
channel = randomAccessFile.getChannel();
}
- catch (FileNotFoundException fnfx)
+ catch (IOException iox)
{
// can happen if the file is locked.
WICKET-4176
- log.error(fnfx.getMessage(), fnfx);
+ log.error(iox.getMessage(), iox);
}
}
return channel;
@@ -558,4 +537,4 @@ public class DiskPageStore extends
AbstractPersistentPageStore implements IPersi
File sessionFolder = folders.get(sessionIdentifier, true);
return new File(sessionFolder, "data").getAbsolutePath();
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/FilePageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/FilePageStore.java
index 2fb968d..9e21715 100644
--- a/wicket-core/src/main/java/org/apache/wicket/pageStore/FilePageStore.java
+++ b/wicket-core/src/main/java/org/apache/wicket/pageStore/FilePageStore.java
@@ -35,7 +35,6 @@ import java.util.Set;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.page.IManageablePage;
import org.apache.wicket.pageStore.disk.NestedFolders;
-import org.apache.wicket.serialize.ISerializer;
import org.apache.wicket.util.file.Files;
import org.apache.wicket.util.io.IOUtils;
import org.apache.wicket.util.lang.Args;
@@ -78,23 +77,6 @@ public class FilePageStore extends
AbstractPersistentPageStore implements IPersi
*/
public FilePageStore(String applicationName, File fileStoreFolder,
Bytes maxSizePerSession)
{
- this(applicationName, fileStoreFolder, maxSizePerSession, null);
- }
-
- /**
- * Create a store to files.
- *
- * @param applicationName
- * name of application
- * @param fileStoreFolder
- * folder to store to
- * @param maxSizePerSession
- * maximum size per session
- * @param serializer
- * for serialization of pages
- */
- public FilePageStore(String applicationName, File fileStoreFolder,
Bytes maxSizePerSession, ISerializer serializer)
- {
super(applicationName);
this.folders = new NestedFolders(new File(fileStoreFolder,
applicationName + "-filestore"));
@@ -229,32 +211,27 @@ public class FilePageStore extends
AbstractPersistentPageStore implements IPersi
Arrays.sort(files, new LastModifiedComparator());
long total = 0;
- for (int f = 0; f < files.length; f++)
+ for (File candidate : files)
{
- File candidate = files[f];
-
total += candidate.length();
if (total > maxSizePerSession.bytes())
{
if (!Files.remove(candidate))
{
- log.warn("cannot remove page data for
session {} page {}", sessionIdentifier,
- candidate.getName());
+ log.warn("cannot remove page data for
session {} page {}", sessionIdentifier, candidate.getName());
}
}
}
}
- public class LastModifiedComparator implements Comparator<File>
+ public static class LastModifiedComparator implements Comparator<File>
{
-
@Override
public int compare(File f1, File f2)
{
return Long.compare(f2.lastModified(),
f1.lastModified());
}
-
}
@Override
@@ -288,8 +265,7 @@ public class FilePageStore extends
AbstractPersistentPageStore implements IPersi
int pageId;
try
{
- pageId = Integer
-
.valueOf(name.substring(0, name.length() - FILE_SUFFIX.length()));
+ pageId =
Integer.parseInt(name.substring(0, name.length() - FILE_SUFFIX.length()), 10);
}
catch (Exception ex)
{
@@ -376,4 +352,4 @@ public class FilePageStore extends
AbstractPersistentPageStore implements IPersi
return Bytes.bytes(total);
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/GroupingPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/GroupingPageStore.java
index b588df7..9eaaa7d 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/GroupingPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/GroupingPageStore.java
@@ -40,12 +40,12 @@ public abstract class GroupingPageStore extends
DelegatingPageStore
private static final String DEFAULT_GROUP = "default";
- private static final MetaDataKey<SessionData> KEY = new
MetaDataKey<SessionData>()
+ private static final MetaDataKey<SessionData> KEY = new MetaDataKey<>()
{
private static final long serialVersionUID = 1L;
};
- private int maxGroups;
+ private final int maxGroups;
/**
* Is a group of a page stable.
@@ -157,9 +157,9 @@ public abstract class GroupingPageStore extends
DelegatingPageStore
*/
static class SessionData implements Serializable
{
- private LinkedList<String> groups = new LinkedList<>();
+ private final LinkedList<String> groups = new LinkedList<>();
- private Map<String, MetaDataEntry<?>[]> metaData = new
HashMap<>();
+ private final Map<String, MetaDataEntry<?>[]> metaData = new
HashMap<>();
public synchronized <T> void setMetaData(String group,
MetaDataKey<T> key, T value)
{
@@ -282,4 +282,4 @@ public abstract class GroupingPageStore extends
DelegatingPageStore
throw new WicketRuntimeException("no request available
for group");
}
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/IPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/IPageStore.java
index 50634a0..3872c8a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/pageStore/IPageStore.java
+++ b/wicket-core/src/main/java/org/apache/wicket/pageStore/IPageStore.java
@@ -50,8 +50,8 @@ public interface IPageStore
*
* @param context
* the context of the page
- * @param id
- * the id of the page.
+ * @param page
+ * the page.
*/
void addPage(IPageContext context, IManageablePage page);
@@ -60,8 +60,8 @@ public interface IPageStore
*
* @param context
* the context of the page
- * @param id
- * the id of the page.
+ * @param page
+ * the page.
*/
void removePage(IPageContext context, IManageablePage page);
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/IPersistentPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/IPersistentPageStore.java
index 9a4226d..837ae7f 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/IPersistentPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/IPersistentPageStore.java
@@ -51,7 +51,7 @@ public interface IPersistentPageStore extends IPageStore
/**
* Get information about all persisted pages with the given session
identifier.
*
- * @param the
+ * @param sessionIdentifier
* identifier of the session.
* @return all persisted pages
*/
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/InMemoryPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/InMemoryPageStore.java
index 481f717..222589f 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/InMemoryPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/InMemoryPageStore.java
@@ -205,7 +205,7 @@ public class InMemoryPageStore extends
AbstractPersistentPageStore implements IP
/**
* Data kept in memory.
*/
- static abstract class MemoryData implements Iterable<IManageablePage>
+ abstract static class MemoryData implements Iterable<IManageablePage>
{
/**
* Kept in list instead of map, since non-serialized pages
might change their id during a request.
@@ -243,11 +243,8 @@ public class InMemoryPageStore extends
AbstractPersistentPageStore implements IP
public synchronized IManageablePage get(int pageId)
{
- Iterator<IManageablePage> iterator = pages.iterator();
- while (iterator.hasNext())
+ for (final IManageablePage page : pages)
{
- IManageablePage page = iterator.next();
-
if (page.getPageId() == pageId)
{
return page;
@@ -269,8 +266,7 @@ public class InMemoryPageStore extends
AbstractPersistentPageStore implements IP
*/
static class CountLimitedData extends MemoryData
{
-
- private int maxPages;
+ private final int maxPages;
public CountLimitedData(int maxPages)
{
@@ -294,8 +290,7 @@ public class InMemoryPageStore extends
AbstractPersistentPageStore implements IP
*/
static class SizeLimitedData extends MemoryData
{
-
- private Bytes maxBytes;
+ private final Bytes maxBytes;
private long size;
@@ -330,9 +325,9 @@ public class InMemoryPageStore extends
AbstractPersistentPageStore implements IP
SerializedPage page = (SerializedPage)
super.remove(pageId);
if (page != null)
{
- size -= ((SerializedPage)
page).getData().length;
+ size -= page.getData().length;
}
return page;
}
}
-}
\ 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 c740380..3c363fd 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
@@ -48,12 +48,12 @@ import org.apache.wicket.util.lang.Classes;
public class InSessionPageStore extends DelegatingPageStore
{
- private static final MetaDataKey<SessionData> KEY_CACHE = new
MetaDataKey<SessionData>()
+ private static final MetaDataKey<SessionData> KEY_CACHE = new
MetaDataKey<>()
{
private static final long serialVersionUID = 1L;
};
- private static final MetaDataKey<SessionData> KEY_PERSISTENT = new
MetaDataKey<SessionData>()
+ private static final MetaDataKey<SessionData> KEY_PERSISTENT = new
MetaDataKey<>()
{
private static final long serialVersionUID = 1L;
};
@@ -213,7 +213,7 @@ public class InSessionPageStore extends DelegatingPageStore
* Data kept in the {@link Session}, might get serialized along with
its containing
* {@link HttpSession}.
*/
- static abstract class SessionData implements Serializable
+ abstract static class SessionData implements Serializable
{
transient ISerializer serializer;
@@ -328,14 +328,14 @@ public class InSessionPageStore extends
DelegatingPageStore
*/
static class CountLimitedData extends SessionData
{
-
- private int maxPages;
+ private final int maxPages;
public CountLimitedData(int maxPages)
{
this.maxPages = Args.withinRange(1, Integer.MAX_VALUE,
maxPages, "maxPages");
}
+ @Override
public synchronized void add(IManageablePage page)
{
super.add(page);
@@ -352,8 +352,7 @@ public class InSessionPageStore extends DelegatingPageStore
*/
static class SizeLimitedData extends SessionData
{
-
- private Bytes maxBytes;
+ private final Bytes maxBytes;
private long size;
@@ -389,7 +388,7 @@ public class InSessionPageStore extends DelegatingPageStore
SerializedPage page =
(SerializedPage)super.remove(pageId);
if (page != null)
{
- size -= ((SerializedPage)page).getData().length;
+ size -= page.getData().length;
}
return page;
@@ -403,4 +402,4 @@ public class InSessionPageStore extends DelegatingPageStore
size = 0;
}
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/RequestPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/RequestPageStore.java
index 0c0da70..ddeab95 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/RequestPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/RequestPageStore.java
@@ -115,7 +115,7 @@ public class RequestPageStore extends DelegatingPageStore
private RequestData getRequestData(IPageContext context)
{
- return context.getRequestData(KEY, () -> new RequestData());
+ return context.getRequestData(KEY, RequestData::new);
}
/**
@@ -123,7 +123,7 @@ public class RequestPageStore extends DelegatingPageStore
*/
static class RequestData
{
- private LinkedList<IManageablePage> pages = new LinkedList<>();
+ private final LinkedList<IManageablePage> pages = new
LinkedList<>();
public void add(IManageablePage page)
{
@@ -160,4 +160,4 @@ public class RequestPageStore extends DelegatingPageStore
pages.clear();
}
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/SerializedPage.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/SerializedPage.java
index eccabe6..4dd6bd7 100644
--- a/wicket-core/src/main/java/org/apache/wicket/pageStore/SerializedPage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/pageStore/SerializedPage.java
@@ -85,11 +85,6 @@ public final class SerializedPage implements IManageablePage
{
return data;
}
-
- @Override
- public void detach()
- {
- }
@Override
public boolean setFreezePageId(boolean freeze)
@@ -102,4 +97,4 @@ public final class SerializedPage implements IManageablePage
{
return "[SerializedPage id = " + pageId + ", type=" + pageType
+ ", size=" + data.length + "]";
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/SerializingPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/SerializingPageStore.java
index bd19872..c62df9f 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/SerializingPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/SerializingPageStore.java
@@ -27,7 +27,7 @@ import org.apache.wicket.util.lang.Classes;
public class SerializingPageStore extends DelegatingPageStore
{
- private ISerializer serializer;
+ private final ISerializer serializer;
/**
* @param delegate
@@ -81,4 +81,4 @@ public class SerializingPageStore extends DelegatingPageStore
}
getDelegate().addPage(context, page);
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/crypt/DefaultCrypter.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/crypt/DefaultCrypter.java
index efc4169..403a4d7 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/crypt/DefaultCrypter.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/crypt/DefaultCrypter.java
@@ -33,10 +33,6 @@ import org.apache.wicket.WicketRuntimeException;
*/
public class DefaultCrypter implements ICrypter
{
- public DefaultCrypter()
- {
- }
-
protected Cipher getCipher() throws GeneralSecurityException
{
return Cipher.getInstance("AES/CBC/PKCS5Padding");
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/disk/NestedFolders.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/disk/NestedFolders.java
index 7636d83..f4d00e6 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/disk/NestedFolders.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/disk/NestedFolders.java
@@ -17,6 +17,7 @@
package org.apache.wicket.pageStore.disk;
import java.io.File;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -98,15 +99,14 @@ public class NestedFolders
Files.removeFolder(folder);
File high = folder.getParentFile();
- if (high.list().length == 0)
+ final String[] highChildren = high.list();
+ if (highChildren != null && highChildren.length == 0 &&
Files.removeFolder(high))
{
- if (Files.removeFolder(high))
+ File low = high.getParentFile();
+ final String[] lowChildren = low.list();
+ if (lowChildren != null && lowChildren.length
== 0)
{
- File low = high.getParentFile();
- if (low.list().length == 0)
- {
- Files.removeFolder(low);
- }
+ Files.removeFolder(low);
}
}
}
@@ -127,10 +127,7 @@ public class NestedFolders
{
for (File high: Files.list(low))
{
- for (File file : Files.list(high))
- {
- files.add(file);
- }
+ Collections.addAll(files,
Files.list(high));
}
}
}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/disk/PageWindowManager.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/disk/PageWindowManager.java
index ad60dab..424089a 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/disk/PageWindowManager.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/disk/PageWindowManager.java
@@ -86,7 +86,7 @@ public class PageWindowManager implements Serializable
}
}
- private final List<FileWindow> windows = new ArrayList<FileWindow>();
+ private final List<FileWindow> windows = new ArrayList<>();
/**
* map from page id to list of pagewindow indices (referring to the
windows list) - to improve
@@ -149,9 +149,9 @@ public class PageWindowManager implements Serializable
private void rebuildIndices()
{
idToWindowIndex = null;
- idToWindowIndex = new IntHashMap<Integer>();
+ idToWindowIndex = new IntHashMap<>();
windowIndexToPageId = null;
- windowIndexToPageId = new IntHashMap<Integer>();
+ windowIndexToPageId = new IntHashMap<>();
for (int i = 0; i < windows.size(); ++i)
{
FileWindow window = windows.get(i);
@@ -355,7 +355,7 @@ public class PageWindowManager implements Serializable
* Creates and returns a new page window for given page.
*
* @param pageId
- * @param type
+ * @param pageType
* @param size
* @return page window
*/
@@ -437,7 +437,7 @@ public class PageWindowManager implements Serializable
*/
public synchronized List<FileWindow> getFileWindows()
{
- List<FileWindow> result = new ArrayList<FileWindow>();
+ List<FileWindow> result = new ArrayList<>();
// start from current index to 0
int currentIndex = indexPointer;
diff --git
a/wicket-core/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java
b/wicket-core/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java
index f7bd8ec..17787b9 100644
---
a/wicket-core/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java
+++
b/wicket-core/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java
@@ -107,7 +107,8 @@ public interface IRequestableComponent
*
* </p>
*/
- void detach();
+ default void detach()
+ {}
/**
* @return {@code true} if it is save to call an {@link
org.apache.wicket.IRequestListener} on this component
diff --git
a/wicket-core/src/main/java/org/apache/wicket/request/component/IRequestablePage.java
b/wicket-core/src/main/java/org/apache/wicket/request/component/IRequestablePage.java
index a5cfb22..d8e1833 100644
---
a/wicket-core/src/main/java/org/apache/wicket/request/component/IRequestablePage.java
+++
b/wicket-core/src/main/java/org/apache/wicket/request/component/IRequestablePage.java
@@ -71,4 +71,10 @@ public interface IRequestablePage extends
IRequestableComponent, IManageablePage
* @return page parameters or <code>null</code>
*/
PageParameters getPageParameters();
+
+ /**
+ * {@inheritDoc}
+ */
+ default void detach()
+ {}
}
diff --git a/wicket-core/src/test/java/org/apache/wicket/MockComponent.java
b/wicket-core/src/test/java/org/apache/wicket/MockComponent.java
index 8af8c40..949fa7d 100644
--- a/wicket-core/src/test/java/org/apache/wicket/MockComponent.java
+++ b/wicket-core/src/test/java/org/apache/wicket/MockComponent.java
@@ -133,11 +133,6 @@ public class MockComponent implements
IRequestableComponent, IRequestListener
}
@Override
- public void detach()
- {
- }
-
- @Override
public boolean canCallListenerAfterExpiry()
{
return false;
diff --git
a/wicket-core/src/test/java/org/apache/wicket/page/PersistentPageManagerTest.java
b/wicket-core/src/test/java/org/apache/wicket/page/PersistentPageManagerTest.java
index d10dc4d..77bb7f0 100644
---
a/wicket-core/src/test/java/org/apache/wicket/page/PersistentPageManagerTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/page/PersistentPageManagerTest.java
@@ -154,11 +154,6 @@ class PersistentPageManagerTest
}
@Override
- public void detach()
- {
- }
-
- @Override
public boolean setFreezePageId(boolean freeze)
{
return false;
diff --git
a/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
b/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
index 7bad045..c9060ae 100644
---
a/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
@@ -79,11 +79,6 @@ public class AsynchronousPageStoreTest
}
@Override
- public void detach()
- {
- }
-
- @Override
public boolean setFreezePageId(boolean freeze)
{
return false;
diff --git
a/wicket-core/src/test/java/org/apache/wicket/pageStore/DiskPageStoreTest.java
b/wicket-core/src/test/java/org/apache/wicket/pageStore/DiskPageStoreTest.java
index dc9d534..233ad41 100644
---
a/wicket-core/src/test/java/org/apache/wicket/pageStore/DiskPageStoreTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/pageStore/DiskPageStoreTest.java
@@ -20,7 +20,6 @@ import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
-import org.apache.wicket.serialize.java.JavaSerializer;
import org.apache.wicket.util.WicketTestTag;
import org.apache.wicket.util.lang.Bytes;
import org.junit.jupiter.api.Tag;
@@ -43,10 +42,10 @@ public class DiskPageStoreTest extends
AbstractConcurrentPageStoreTest
{
File fileStoreFolder = Files.createTempDirectory(null).toFile();
- IPageStore pageStore = new DiskPageStore("app1",
fileStoreFolder, MAX_SIZE_PER_SESSION, new JavaSerializer("app1"));
+ IPageStore pageStore = new DiskPageStore("app1",
fileStoreFolder, MAX_SIZE_PER_SESSION);
doTestStore(pageStore);
pageStore.destroy();
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/test/java/org/apache/wicket/pageStore/FilePageStoreTest.java
b/wicket-core/src/test/java/org/apache/wicket/pageStore/FilePageStoreTest.java
index 86f393a..777a1d5 100644
---
a/wicket-core/src/test/java/org/apache/wicket/pageStore/FilePageStoreTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/pageStore/FilePageStoreTest.java
@@ -43,10 +43,10 @@ public class FilePageStoreTest extends
AbstractConcurrentPageStoreTest
{
File folder = Files.createTempDirectory(null).toFile();
- IPageStore pageStore = new FilePageStore("app1", folder,
MAX_SIZE_PER_SESSION, new JavaSerializer("app1"));
+ IPageStore pageStore = new FilePageStore("app1", folder,
MAX_SIZE_PER_SESSION);
doTestStore(pageStore);
pageStore.destroy();
}
-}
\ No newline at end of file
+}
diff --git
a/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java
b/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java
index 033e597..2c01d91 100644
---
a/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java
@@ -64,7 +64,7 @@ class WebClientInfoTest
WebClientInfo clientInfo = new WebClientInfo(requestCycleMock,
"No user agent");
String actual = clientInfo.getRemoteAddr(requestCycleMock);
assertEquals(expected, actual);
- Mockito.verifyZeroInteractions(servletRequest);
+ Mockito.verifyNoInteractions(servletRequest);
}
/**