@Retained
  EntryEventImpl createListenerEvent(EntryEventImpl sourceEvent, PartitionedRegion r,
      InternalDistributedMember member) {
    final EntryEventImpl e2;
    if (notificationOnly && bridgeContext == null) {
      e2 = sourceEvent;
    } else {
      e2 = new EntryEventImpl(sourceEvent);
      if (bridgeContext != null) {
        e2.setContext(bridgeContext);
      }
    }
    e2.setRegion(r);
    e2.setOriginRemote(true);
    e2.setInvokePRCallbacks(!notificationOnly);
    if (filterInfo != null) {
      e2.setLocalFilterInfo(filterInfo.getFilterInfo(member));
    }
    if (versionTag != null) {
      versionTag.replaceNullIDs(getSender());
      e2.setVersionTag(versionTag);
    }
    return e2;
  }
create a new EntryEvent to be used in notifying listeners, cache servers, etc. Caller must
release result if it is != to sourceEvent
geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/DestroyMessage.java