private static void handleList(final @Nullable LocalRegion region, final @NotNull List<?> keyList,
      final @NotNull InterestResultPolicy policy,
      final @NotNull ServerConnection servConn) throws IOException {
    if (region instanceof PartitionedRegion) {
      // too bad java doesn't provide another way to do this...
      handleListPR((PartitionedRegion) region, keyList, policy, servConn);
      return;
    }
    List<Object> newKeyList = new ArrayList<>(MAXIMUM_CHUNK_SIZE);
    // Handle list of keys
    if (region != null) {
      for (Object entryKey : keyList) {
        if (region.containsKey(entryKey)
            || sendTombstonesInRIResults(policy) && region.containsTombstone(entryKey)) {

          appendInterestResponseKey(region, keyList, entryKey, newKeyList, servConn);
        }
      }
    }
    // Send the last chunk (the only chunk for individual and list keys)
    // always send it back, even if the list is of zero size.
    sendRegisterInterestResponseChunk(region, keyList, newKeyList, true, servConn);
  }
Process an interest request involving a list of keys

@param region the region
@param keyList the list of keys
@param policy the policy
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java