From 27c8148007738536db13ac09dc1b0f33eb0b35e3 Mon Sep 17 00:00:00 2001 From: leventov Date: Thu, 17 Dec 2015 13:59:14 +0300 Subject: [PATCH] Fix the prev commit e78e070 --- .../chronicle/hash/impl/stage/entry/HashEntryStages.java | 2 +- .../chronicle/hash/impl/stage/query/KeySearch.java | 2 +- .../openhft/chronicle/map/ReplicatedChronicleMap.java | 2 +- .../map/impl/stage/entry/ReplicatedMapEntryStages.java | 9 +-------- .../iter/ReplicatedMapAbsentDelegatingForIteration.java | 9 +++++++-- .../impl/stage/iter/ReplicatedMapSegmentIteration.java | 6 +----- .../chronicle/map/impl/stage/map/DefaultValue.java | 6 +----- .../map/impl/stage/query/ReplicatedMapAbsent.java | 8 ++++++++ .../impl/stage/query/ReplicatedMapAbsentDelegating.java | 7 ++++++- 9 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/HashEntryStages.java b/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/HashEntryStages.java index a1dcaf553..342286858 100644 --- a/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/HashEntryStages.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/HashEntryStages.java @@ -159,7 +159,7 @@ public abstract class HashEntryStages implements HashEntry, ChecksumEntry return checksumStrategy.extraEntryBytes() + entryEnd() - keySizeOffset; } - @StageRef EntryKeyBytesData entryKey; + @StageRef public EntryKeyBytesData entryKey; @NotNull @Override diff --git a/src/main/java/net/openhft/chronicle/hash/impl/stage/query/KeySearch.java b/src/main/java/net/openhft/chronicle/hash/impl/stage/query/KeySearch.java index 4bbb91ab5..f56651785 100644 --- a/src/main/java/net/openhft/chronicle/hash/impl/stage/query/KeySearch.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/stage/query/KeySearch.java @@ -37,7 +37,7 @@ public abstract class KeySearch { public Data inputKey = null; - abstract boolean inputKeyInit(); + public abstract boolean inputKeyInit(); public void initInputKey(Data inputKey) { this.inputKey = inputKey; diff --git a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java index 7cb6b1aa8..2300a66f3 100644 --- a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java +++ b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java @@ -418,7 +418,7 @@ public class ReplicatedChronicleMap extends VanillaChronicleMap extends MapEntryStages - implements MapReplicableEntry, MapAbsentEntry { + implements MapReplicableEntry { @StageRef ReplicatedChronicleMapHolder mh; @StageRef ReplicationUpdate ru; @@ -159,11 +159,4 @@ public abstract class ReplicatedMapEntryStages extends MapEntryStages absentKey() { - checkOnEachPublicOperation.checkOnEachPublicOperation(); - return ks.inputKey; - } } diff --git a/src/main/java/net/openhft/chronicle/map/impl/stage/iter/ReplicatedMapAbsentDelegatingForIteration.java b/src/main/java/net/openhft/chronicle/map/impl/stage/iter/ReplicatedMapAbsentDelegatingForIteration.java index 3809383bb..076f03b45 100644 --- a/src/main/java/net/openhft/chronicle/map/impl/stage/iter/ReplicatedMapAbsentDelegatingForIteration.java +++ b/src/main/java/net/openhft/chronicle/map/impl/stage/iter/ReplicatedMapAbsentDelegatingForIteration.java @@ -17,10 +17,12 @@ package net.openhft.chronicle.map.impl.stage.iter; import net.openhft.chronicle.hash.Data; +import net.openhft.chronicle.hash.impl.stage.hash.CheckOnEachPublicOperation; import net.openhft.chronicle.hash.impl.stage.replication.ReplicableEntryDelegating; import net.openhft.chronicle.hash.replication.ReplicableEntry; import net.openhft.chronicle.map.MapAbsentEntry; import net.openhft.chronicle.map.impl.stage.entry.ReplicatedMapEntryStages; +import net.openhft.chronicle.map.impl.stage.map.DefaultValue; import net.openhft.chronicle.map.impl.stage.map.WrappedValueInstanceValueHolder; import net.openhft.chronicle.set.SetAbsentEntry; import net.openhft.sg.StageRef; @@ -31,8 +33,10 @@ import org.jetbrains.annotations.NotNull; public class ReplicatedMapAbsentDelegatingForIteration implements MapAbsentEntry, SetAbsentEntry, ReplicableEntryDelegating { + @StageRef CheckOnEachPublicOperation checkOnEachPublicOperation; @StageRef ReplicatedMapSegmentIteration delegate; @StageRef ReplicatedMapEntryStages e; + @StageRef DefaultValue defaultValue; @NotNull @Override @@ -53,13 +57,14 @@ public class ReplicatedMapAbsentDelegatingForIteration @NotNull @Override public Data defaultValue() { - return delegate.defaultValue(); + return defaultValue.defaultValue(); } @NotNull @Override public Data absentKey() { - return delegate.absentKey(); + checkOnEachPublicOperation.checkOnEachPublicOperation(); + return e.entryKey; } @Override diff --git a/src/main/java/net/openhft/chronicle/map/impl/stage/iter/ReplicatedMapSegmentIteration.java b/src/main/java/net/openhft/chronicle/map/impl/stage/iter/ReplicatedMapSegmentIteration.java index 9076f965b..465f4a1c0 100644 --- a/src/main/java/net/openhft/chronicle/map/impl/stage/iter/ReplicatedMapSegmentIteration.java +++ b/src/main/java/net/openhft/chronicle/map/impl/stage/iter/ReplicatedMapSegmentIteration.java @@ -19,7 +19,6 @@ package net.openhft.chronicle.map.impl.stage.iter; import net.openhft.chronicle.hash.Data; import net.openhft.chronicle.hash.ReplicatedHashSegmentContext; import net.openhft.chronicle.hash.replication.ReplicableEntry; -import net.openhft.chronicle.map.MapAbsentEntry; import net.openhft.chronicle.map.MapEntry; import net.openhft.chronicle.map.impl.ReplicatedIterationContext; import net.openhft.chronicle.map.impl.VanillaChronicleMapHolder; @@ -27,7 +26,6 @@ import net.openhft.chronicle.map.impl.stage.data.DummyValueZeroData; import net.openhft.chronicle.map.impl.stage.entry.ReplicatedMapEntryStages; import net.openhft.chronicle.map.impl.stage.replication.ReplicationUpdate; import net.openhft.chronicle.set.DummyValueData; -import net.openhft.chronicle.set.SetAbsentEntry; import net.openhft.sg.StageRef; import net.openhft.sg.Staged; @@ -40,7 +38,7 @@ import static net.openhft.chronicle.map.impl.stage.iter.ReplicatedMapSegmentIter @Staged public abstract class ReplicatedMapSegmentIteration extends MapSegmentIteration implements ReplicatedIterationContext, ReplicableEntry, - ReplicatedHashSegmentContext>, MapAbsentEntry, SetAbsentEntry { + ReplicatedHashSegmentContext> { @StageRef VanillaChronicleMapHolder mh; @StageRef ReplicatedMapEntryStages e; @@ -132,7 +130,6 @@ public abstract class ReplicatedMapSegmentIteration extends MapSegmentI s.tierDeleted(s.tierDeleted() - 1); } - @Override public void doInsert(Data value) { checkOnEachPublicOperation.checkOnEachPublicOperation(); if (e.entryDeleted()) { @@ -152,7 +149,6 @@ public abstract class ReplicatedMapSegmentIteration extends MapSegmentI } } - @Override public void doInsert() { if (mh.set() == null) throw new IllegalStateException("Called SetAbsentEntry.doInsert() from Map context"); diff --git a/src/main/java/net/openhft/chronicle/map/impl/stage/map/DefaultValue.java b/src/main/java/net/openhft/chronicle/map/impl/stage/map/DefaultValue.java index 5eee6cab9..9be5acf55 100644 --- a/src/main/java/net/openhft/chronicle/map/impl/stage/map/DefaultValue.java +++ b/src/main/java/net/openhft/chronicle/map/impl/stage/map/DefaultValue.java @@ -18,22 +18,18 @@ package net.openhft.chronicle.map.impl.stage.map; import net.openhft.chronicle.hash.Data; import net.openhft.chronicle.hash.impl.stage.hash.CheckOnEachPublicOperation; -import net.openhft.chronicle.map.MapAbsentEntry; -import net.openhft.chronicle.map.impl.VanillaChronicleMapHolder; import net.openhft.chronicle.map.impl.stage.data.DummyValueZeroData; import net.openhft.sg.StageRef; import net.openhft.sg.Staged; import org.jetbrains.annotations.NotNull; @Staged -public abstract class DefaultValue implements MapAbsentEntry { +public abstract class DefaultValue { @StageRef CheckOnEachPublicOperation checkOnEachPublicOperation; - @StageRef VanillaChronicleMapHolder mh; @StageRef DummyValueZeroData zeroValueData; @NotNull - @Override public Data defaultValue() { checkOnEachPublicOperation.checkOnEachPublicOperation(); return zeroValueData; diff --git a/src/main/java/net/openhft/chronicle/map/impl/stage/query/ReplicatedMapAbsent.java b/src/main/java/net/openhft/chronicle/map/impl/stage/query/ReplicatedMapAbsent.java index ac65ed2fe..86c77933e 100644 --- a/src/main/java/net/openhft/chronicle/map/impl/stage/query/ReplicatedMapAbsent.java +++ b/src/main/java/net/openhft/chronicle/map/impl/stage/query/ReplicatedMapAbsent.java @@ -22,6 +22,7 @@ import net.openhft.chronicle.map.impl.stage.entry.ReplicatedMapEntryStages; import net.openhft.chronicle.map.impl.stage.replication.ReplicationUpdate; import net.openhft.sg.StageRef; import net.openhft.sg.Staged; +import org.jetbrains.annotations.NotNull; import static net.openhft.chronicle.hash.impl.stage.query.KeySearch.SearchState.PRESENT; @@ -32,6 +33,13 @@ public abstract class ReplicatedMapAbsent extends MapAbsent { @StageRef ReplicatedMapEntryStages e; @StageRef ReplicationUpdate ru; + @NotNull + @Override + public Data absentKey() { + checkOnEachPublicOperation.checkOnEachPublicOperation(); + return e.entryKey; + } + @Override public void doInsert(Data value) { q.putPrefix(); diff --git a/src/main/java/net/openhft/chronicle/map/impl/stage/query/ReplicatedMapAbsentDelegating.java b/src/main/java/net/openhft/chronicle/map/impl/stage/query/ReplicatedMapAbsentDelegating.java index aed59e26d..bc3dccefc 100644 --- a/src/main/java/net/openhft/chronicle/map/impl/stage/query/ReplicatedMapAbsentDelegating.java +++ b/src/main/java/net/openhft/chronicle/map/impl/stage/query/ReplicatedMapAbsentDelegating.java @@ -17,6 +17,8 @@ package net.openhft.chronicle.map.impl.stage.query; import net.openhft.chronicle.hash.Data; +import net.openhft.chronicle.hash.impl.stage.hash.CheckOnEachPublicOperation; +import net.openhft.chronicle.hash.impl.stage.query.KeySearch; import net.openhft.sg.StageRef; import net.openhft.sg.Staged; import org.jetbrains.annotations.NotNull; @@ -24,6 +26,8 @@ import org.jetbrains.annotations.NotNull; @Staged public class ReplicatedMapAbsentDelegating implements Absent { + @StageRef CheckOnEachPublicOperation checkOnEachPublicOperation; + @StageRef KeySearch ks; @StageRef ReplicatedMapAbsent delegate; @NotNull @@ -51,6 +55,7 @@ public class ReplicatedMapAbsentDelegating implements Absent { @NotNull @Override public Data absentKey() { - return delegate.absentKey(); + checkOnEachPublicOperation.checkOnEachPublicOperation(); + return ks.inputKey; } }