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);

Reply via email to