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