private static void handleKVSingleton(final @Nullable LocalRegion region,
      final @NotNull Object entryKey,
      final boolean serializeValues, final @NotNull ServerConnection servConn) throws IOException {
    final VersionedObjectList values = new VersionedObjectList(MAXIMUM_CHUNK_SIZE, true,
        region == null || region.getAttributes().getConcurrencyChecksEnabled(), serializeValues);

    if (region != null) {
      if (region.containsKey(entryKey) || region.containsTombstone(entryKey)) {
        final VersionTagHolder versionHolder = createVersionTagHolder();
        final ClientProxyMembershipID id = servConn.getProxyID();
        // From Get70.getValueAndIsObject()
        final Object data = region.get(entryKey, null, true, true, true, id, versionHolder, true);
        final VersionTag<?> vt = versionHolder.getVersionTag();

        updateValues(values, entryKey, data, vt);
      }
    }
    // Send the last chunk (the only chunk for individual and list keys)
    // always send it back, even if the list is of zero size.
    sendNewRegisterInterestResponseChunk(region, entryKey, values, true, servConn);
  }
Handles both RR and PR cases
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java