Fix wrong decrements of tierDeleted (after innerDefaultReplaceValue(), when should be before), because relocation could trigger tier change inside innerDefaultReplaceValue()

This commit is contained in:
leventov
2015-12-20 18:32:53 +03:00
parent de8e27464c
commit dd4fa03bfe
2 changed files with 2 additions and 2 deletions
@@ -134,8 +134,8 @@ public abstract class ReplicatedMapSegmentIteration<K, V, R> extends MapSegmentI
checkOnEachPublicOperation.checkOnEachPublicOperation();
if (e.entryDeleted()) {
try {
e.innerDefaultReplaceValue(value);
s.tierDeleted(s.tierDeleted() - 1);
e.innerDefaultReplaceValue(value);
s.incrementModCount();
e.writeEntryPresent();
ru.updateChange();
@@ -52,9 +52,9 @@ public abstract class ReplicatedMapAbsent<K, V> extends MapAbsent<K, V> {
ks.setSearchState(PRESENT);
q.initPresenceOfEntry(EntryPresence.PRESENT);
} else {
s.tierDeleted(s.tierDeleted() - 1);
e.innerDefaultReplaceValue(value);
e.updatedReplicationStateOnPresentEntry();
s.tierDeleted(s.tierDeleted() - 1);
}
s.incrementModCount();
e.writeEntryPresent();