private void givenExistingEntry(boolean miss) {
    if (miss) {
      when(regionMap.getEntry(event)).thenReturn(null).thenReturn(existingRegionEntry);
    } else {
      when(regionMap.getEntry(event)).thenReturn(existingRegionEntry);
    }
    when(regionMap.putEntryIfAbsent(KEY, newRegionEntry)).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