This is an automated email from the ASF dual-hosted git repository.

tv pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jcs.git

commit eb3e8073c25ebb3298e0657d31e6b0545228ea8c
Author: Thomas Vandahl <t...@apache.org>
AuthorDate: Fri Mar 26 18:37:14 2021 +0100

    Better lifecycle control
---
 .../jcs3/auxiliary/lateral/LateralCacheNoWaitFacade.java      | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git 
a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/auxiliary/lateral/LateralCacheNoWaitFacade.java
 
b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/auxiliary/lateral/LateralCacheNoWaitFacade.java
index c1cec01..f2f8d80 100644
--- 
a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/auxiliary/lateral/LateralCacheNoWaitFacade.java
+++ 
b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/auxiliary/lateral/LateralCacheNoWaitFacade.java
@@ -29,6 +29,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
 import org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCache;
@@ -78,7 +79,7 @@ public class LateralCacheNoWaitFacade<K, V>
     private final ILateralCacheAttributes lateralCacheAttributes;
 
     /** Disposed state of this facade */
-    private boolean disposed;
+    private AtomicBoolean disposed = new AtomicBoolean(false);
 
     /**
      * Constructs with the given lateral cache, and fires events to any 
listeners.
@@ -312,7 +313,7 @@ public class LateralCacheNoWaitFacade<K, V>
     @Override
     public void dispose()
     {
-        try
+        if (disposed.compareAndSet(false, true))
         {
             if ( listener != null )
             {
@@ -322,10 +323,6 @@ public class LateralCacheNoWaitFacade<K, V>
 
             noWaitSet.forEach(LateralCacheNoWait::dispose);
         }
-        finally
-        {
-            disposed = true;
-        }
     }
 
     /**
@@ -369,7 +366,7 @@ public class LateralCacheNoWaitFacade<K, V>
     @Override
     public CacheStatus getStatus()
     {
-        if (disposed)
+        if (disposed.get())
         {
             return CacheStatus.DISPOSED;
         }

Reply via email to