Repository: wicket Updated Branches: refs/heads/WICKET-6603-wickettester-hang 1a558850f -> fc8a5ab4d
[WICKET-6603] Refactored to minimize the count of member variable Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/fc8a5ab4 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/fc8a5ab4 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/fc8a5ab4 Branch: refs/heads/WICKET-6603-wickettester-hang Commit: fc8a5ab4d6299815cd9f0f26e0eae60e605a065f Parents: 1a55885 Author: Maxim Solodovnik <[email protected]> Authored: Fri Oct 26 14:42:49 2018 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Fri Oct 26 14:42:49 2018 +0700 ---------------------------------------------------------------------- .../wicket/pageStore/AsynchronousDataStore.java | 20 +++++++++----------- .../wicket/pageStore/AsynchronousPageStore.java | 20 +++++++++----------- 2 files changed, 18 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/fc8a5ab4/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java index 1c25ae6..c3c47ba 100644 --- a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java +++ b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java @@ -22,7 +22,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; import org.apache.wicket.util.lang.Args; import org.slf4j.Logger; @@ -60,7 +59,7 @@ public class AsynchronousDataStore implements IDataStore /** * The page saving thread. */ - private final Thread pageSavingThread; + private Thread pageSavingThread; /** * The wrapped {@link IDataStore} that actually stores that pages @@ -78,8 +77,6 @@ public class AsynchronousDataStore implements IDataStore */ private final ConcurrentMap<String, Entry> entryMap; - private AtomicBoolean operates = new AtomicBoolean(true); - /** * Construct. * @@ -102,12 +99,13 @@ public class AsynchronousDataStore implements IDataStore @Override public void destroy() { - operates.compareAndSet(true, false); - if (pageSavingThread.isAlive()) + final Thread thread = pageSavingThread; + pageSavingThread = null; + if (thread != null && thread.isAlive()) { try { - pageSavingThread.join(); + thread.join(); } catch (InterruptedException e) { log.error(e.getMessage(), e); @@ -200,7 +198,7 @@ public class AsynchronousDataStore implements IDataStore @Override public void storeData(final String sessionId, final int id, final byte[] data) { - if (!operates.get()) + if (pageSavingThread == null) { return; } @@ -222,7 +220,7 @@ public class AsynchronousDataStore implements IDataStore catch (InterruptedException e) { log.error(e.getMessage(), e); - if (operates.get()) + if (pageSavingThread != null) { entryMap.remove(key); dataStore.storeData(sessionId, id, data); @@ -315,7 +313,7 @@ public class AsynchronousDataStore implements IDataStore @Override public void run() { - while (operates.get()) + while (pageSavingThread != null) { Entry entry = null; try @@ -327,7 +325,7 @@ public class AsynchronousDataStore implements IDataStore log.debug("PageSavingRunnable:: Interrupted..."); } - if (entry != null && operates.get()) + if (entry != null && pageSavingThread != null) { log.debug("PageSavingRunnable:: Saving asynchronously: {}...", entry); dataStore.storeData(entry.sessionId, entry.pageId, entry.data); http://git-wip-us.apache.org/repos/asf/wicket/blob/fc8a5ab4/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java ---------------------------------------------------------------------- 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 dfb4d19..c24b2a0 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 @@ -22,7 +22,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; import org.apache.wicket.page.IManageablePage; import org.apache.wicket.util.lang.Args; @@ -64,7 +63,7 @@ public class AsynchronousPageStore implements IPageStore /** * The page saving thread. */ - private final Thread pageSavingThread; + private Thread pageSavingThread; /** * The wrapped {@link IPageStore} that actually stores that pages @@ -82,8 +81,6 @@ public class AsynchronousPageStore implements IPageStore */ private final ConcurrentMap<String, Entry> entryMap; - private AtomicBoolean operates = new AtomicBoolean(true); - /** * Construct. * @@ -193,7 +190,7 @@ public class AsynchronousPageStore implements IPageStore @Override public void run() { - while (operates.get()) + while (pageSavingThread != null) { Entry entry = null; try @@ -205,7 +202,7 @@ public class AsynchronousPageStore implements IPageStore log.debug("PageSavingRunnable:: Interrupted..."); } - if (entry != null && operates.get()) + if (entry != null && pageSavingThread != null) { log.debug("PageSavingRunnable:: Saving asynchronously: {}...", entry); delegate.storePage(entry.sessionId, entry.page); @@ -218,12 +215,13 @@ public class AsynchronousPageStore implements IPageStore @Override public void destroy() { - operates.compareAndSet(true, false); - if (pageSavingThread.isAlive()) + final Thread thread = pageSavingThread; + pageSavingThread = null; + if (thread != null && thread.isAlive()) { try { - pageSavingThread.join(); + thread.join(); } catch (InterruptedException e) { @@ -271,7 +269,7 @@ public class AsynchronousPageStore implements IPageStore @Override public void storePage(String sessionId, IManageablePage page) { - if (!operates.get()) + if (pageSavingThread == null) { return; } @@ -297,7 +295,7 @@ public class AsynchronousPageStore implements IPageStore catch (InterruptedException e) { log.error(e.getMessage(), e); - if (operates.get()) + if (pageSavingThread != null) { entryMap.remove(key); delegate.storePage(sessionId, page);
