private void givenExistingEntryWithValue(Object value) throws RegionClearedException {
    if (value == Token.TOMBSTONE) {
      givenExistingTombstone();
    } else {
      when(existingRegionEntry.getValue()).thenReturn(value);
    }
    when(regionMap.getEntry(event)).thenReturn(value == null ? null : existingRegionEntry);
    when(regionMap.putEntryIfAbsent(eq(KEY), any())).thenReturn(existingRegionEntry);
    if (withConcurrencyChecks) {
      when(existingRegionEntry.getVersionStamp()).thenReturn(mock(VersionStamp.class));
    }
  }
instead of a TOMBSTONE we leave an evictableEntry whose value is REMOVE_PHASE1 this looks like
a bug. It is caused by some code in: AbstractRegionEntry.destroy() that calls removePhase1 when
the versionTag is null. It seems like this code path needs to tell the higher levels to call
removeEntry
geode-core/src/test/java/org/apache/geode/internal/cache/map/RegionMapDestroyTest.java