private void retryIfIsRemovedPhase2() { if (regionEntry.isRemovedPhase2()) { focusedRegionMap.getEntryMap().remove(event.getKey(), regionEntry); internalRegion.getCachePerfStats().incRetries(); retry = true; doContinue = true; } }
private void givenRemovePhase2Retry() { when(existingRegionEntry.isRemovedPhase2()).thenReturn(true); when(regionMap.getEntry(event)).thenReturn(null); when(regionMap.putEntryIfAbsent(eq(KEY), any())).thenReturn(existingRegionEntry) .thenReturn(null); }
private void givenExistingEntryWithTokenAndVersionTag(Token token) { if (token == Token.REMOVED_PHASE2) { when(regionMap.getEntry(event)).thenReturn(existingRegionEntry).thenReturn(null); when(regionMap.putEntryIfAbsent(KEY, newRegionEntry)).thenReturn(null); when(existingRegionEntry.isRemovedPhase2()).thenReturn(true); when(existingRegionEntry.isRemoved()).thenReturn(true); when(existingRegionEntry.isDestroyedOrRemoved()).thenReturn(true); when(existingRegionEntry.isInvalidOrRemoved()).thenReturn(true); when(existingRegionEntry.isDestroyedOrRemovedButNotTombstone()).thenReturn(true); } else { throw new IllegalArgumentException("unexpected token: " + token); } givenEventWithVersionTag(); }
@Test public void putWithExistingEntryFromPutIfAbsentThatIsRemovedReturnsExistingEntry() { instance.checkPreconditions = true; RegionEntry existingEntry = mock(RegionEntry.class); when(existingEntry.isRemovedPhase2()).thenReturn(true).thenReturn(false); when(focusedRegionMap.putEntryIfAbsent(any(), eq(createdRegionEntry))) .thenReturn(existingEntry); RegionEntry result = instance.put(); assertThat(result).isSameAs(existingEntry); verify(focusedRegionMap, times(2)).getEntry(eq(event)); verify(focusedRegionMap, times(2)).getEntryFactory(); verify(entryMap, times(1)).remove(any(), eq(existingEntry)); verifyAbstractContractWithRetry(); }
@Test public void createOnExistingEntryWithRemovePhase2DoesCreate() throws RegionClearedException { ifNew = true; RegionEntry existingRegionEntry = mock(RegionEntry.class); when(existingRegionEntry.isRemovedPhase2()).thenReturn(true); when(focusedRegionMap.putEntryIfAbsent(event.getKey(), createdRegionEntry)) .thenReturn(existingRegionEntry).thenReturn(null); when(event.getOperation()).thenReturn(Operation.CREATE); RegionEntry result = doPut(); assertThat(result).isSameAs(createdRegionEntry); verify(event, times(1)).putNewEntry(internalRegion, createdRegionEntry); verify(internalRegion, times(1)).basicPutPart2(eq(event), eq(result), eq(true), anyLong(), eq(false)); verify(internalRegion, times(1)).basicPutPart3(eq(event), eq(result), eq(true), anyLong(), eq(true), eq(ifNew), eq(ifOld), eq(expectedOldValue), eq(requireOldValue)); }
@Test public void txApplyDestroyRetries_givenOldRegionEntryWithRemovedPhase2() { givenLocalRegion(); givenConcurrencyChecks(); givenOldRegionEntry(); inTokenMode = true; when(oldRegionEntry.isRemovedPhase2()).thenReturn(true).thenReturn(false); doTxApplyDestroy(); verify(cachePerfStats, times(1)).incRetries(); verify(entryMap, times(1)).remove(eq(key), same(oldRegionEntry)); }
/** * @return true if the entry is in the final stage of removal */ private boolean isRegionEntryRemoved() { final RegionEntry re = getRegionEntry(); if (re.isRemovedPhase2()) { getOwner().getCachePerfStats().incRetries(); getRegionMap().getEntryMap().remove(getEvent().getKey(), re); return true; } else { return false; } } }
.thenReturn(true); RegionEntry removedTokenEntry = mock(RegionEntry.class); when(removedTokenEntry.isRemovedPhase2()).thenReturn(true); VersionStamp versionStamp = mock(VersionStamp.class); when(entry.getVersionStamp()).thenReturn(versionStamp);
private void removeRegionEntryUntilCompleted() { while (!opCompleted && oldRegionEntry != null) { synchronized (oldRegionEntry) { if (oldRegionEntry.isRemovedPhase2()) { internalRegion.getCachePerfStats().incRetries(); focusedRegionMap.getEntryMap().remove(event.getKey(), oldRegionEntry);
while (!opCompleted && oldRe != null) { synchronized (oldRe) { if (oldRe.isRemovedPhase2()) { owner.getCachePerfStats().incRetries(); getEntryMap().remove(key, oldRe);
while (!opCompleted && oldRe != null) { synchronized (oldRe) { if (oldRe.isRemovedPhase2()) { owner.getCachePerfStats().incRetries(); getEntryMap().remove(key, oldRe);
while (!done && oldRe != null) { synchronized (oldRe) { if (oldRe.isRemovedPhase2()) { owner.getCachePerfStats().incRetries(); getEntryMap().remove(key, oldRe);
if (oldRe.isRemovedPhase2()) { owner.getCachePerfStats().incRetries(); getEntryMap().remove(event.getKey(), oldRe);