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 <mgrigo...@apache.org> 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); } /**