diff --git a/src/main/java/net/openhft/chronicle/hash/HashSegmentContext.java b/src/main/java/net/openhft/chronicle/hash/HashSegmentContext.java index fa3fb1280..8fbdfe8b6 100644 --- a/src/main/java/net/openhft/chronicle/hash/HashSegmentContext.java +++ b/src/main/java/net/openhft/chronicle/hash/HashSegmentContext.java @@ -57,4 +57,9 @@ public interface HashSegmentContext> extends HashConte * Returns the number of present entries in this segment. */ long size(); + + @Override + default boolean isClosed() { + throw new UnsupportedOperationException(); + } } diff --git a/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java b/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java index 1d613653b..ad8756bbe 100755 --- a/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java @@ -22,6 +22,7 @@ import net.openhft.chronicle.bytes.MappedBytesStoreFactory; import net.openhft.chronicle.bytes.NativeBytesStore; import net.openhft.chronicle.core.Maths; import net.openhft.chronicle.core.OS; +import net.openhft.chronicle.core.io.AbstractCloseable; import net.openhft.chronicle.hash.*; import net.openhft.chronicle.hash.impl.util.BuildVersion; import net.openhft.chronicle.hash.impl.util.Cleaner; @@ -38,7 +39,6 @@ import net.openhft.chronicle.map.ChronicleMapBuilder; import net.openhft.chronicle.values.Values; import net.openhft.chronicle.wire.Marshallable; import net.openhft.chronicle.wire.WireIn; -import net.openhft.chronicle.wire.WireInternal; import net.openhft.chronicle.wire.WireOut; import org.jetbrains.annotations.NotNull; @@ -65,9 +65,8 @@ import static net.openhft.chronicle.hash.impl.CompactOffHeapLinearHashTable.*; import static net.openhft.chronicle.map.ChronicleHashCorruptionImpl.format; import static net.openhft.chronicle.map.ChronicleHashCorruptionImpl.report; -public abstract class VanillaChronicleHash, SC extends HashSegmentContext, - ECQ extends ExternalHashQueryContext> +public abstract class VanillaChronicleHash, SC extends HashSegmentContext, ECQ extends ExternalHashQueryContext> + extends AbstractCloseable implements ChronicleHash, Marshallable { public static final long TIER_COUNTERS_AREA_SIZE = 64; @@ -660,7 +659,7 @@ public abstract class VanillaChronicleHash implements Closeable { +public class AcquireHandle extends AbstractCloseable { @StageRef CheckOnEachPublicOperation checkOnEachPublicOperation; @@ -33,7 +34,7 @@ public class AcquireHandle implements Closeable { UsingReturnValue usingReturn; @Override - public void close() { + protected void performClose() { checkOnEachPublicOperation.checkOnEachPublicOperation(); q.replaceValue(q.entry(), q.wrapValueAsData(usingReturn.returnValue())); q.close(); diff --git a/src/main/java/net/openhft/chronicle/set/SetFromMap.java b/src/main/java/net/openhft/chronicle/set/SetFromMap.java index c31204622..fb1c049d4 100644 --- a/src/main/java/net/openhft/chronicle/set/SetFromMap.java +++ b/src/main/java/net/openhft/chronicle/set/SetFromMap.java @@ -203,6 +203,11 @@ class SetFromMap extends AbstractSet implements ChronicleSet { m.close(); } + @Override + public boolean isClosed() { + return m.isClosed(); + } + @Override public boolean isOpen() { return m.isOpen(); diff --git a/src/test/java/net/openhft/chronicle/map/ReplicationCheckingMap.java b/src/test/java/net/openhft/chronicle/map/ReplicationCheckingMap.java index 910662f8d..f7902816d 100644 --- a/src/test/java/net/openhft/chronicle/map/ReplicationCheckingMap.java +++ b/src/test/java/net/openhft/chronicle/map/ReplicationCheckingMap.java @@ -331,6 +331,11 @@ public class ReplicationCheckingMap implements ChronicleMap { map2.close(); } + @Override + public boolean isClosed() { + return false; + } + @Override public boolean isOpen() { throw new UnsupportedOperationException();