protected void clearClientInterestList() {
    boolean isClosed = cacheClientProxy.getCache().isClosed();

    synchronized (interestListLock) {
      for (String regionName : regions) {
        FilterProfile p = getProfile(regionName);
        if (p == null) {
          continue;
        }
        if (!isClosed) {
          if (p.hasAllKeysInterestFor(id)) {
            final Set<String> allKeys = Collections.singleton(".*");
            handleInterestEvent(regionName, allKeys, InterestType.REGULAR_EXPRESSION, false);
          }
          Set<?> keysOfInterest = p.getKeysOfInterestFor(id);
          if (keysOfInterest != null && keysOfInterest.size() > 0) {
            handleInterestEvent(regionName, keysOfInterest, InterestType.KEY, false);
          }
          Map<String, Pattern> patternsOfInterest = p.getPatternsOfInterestFor(id);
          if (patternsOfInterest != null && patternsOfInterest.size() > 0) {
            handleInterestEvent(regionName, patternsOfInterest.keySet(),
                InterestType.REGULAR_EXPRESSION, false);
          }
        }
        p.clearInterestFor(id);
      }
      regions.clear();
    }
  }
Unregisters interest in the input region name and list of keys

@param regionName The fully-qualified name of the region in which to unregister interest
@param keysOfInterest The list of keys in which to unregister interest
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestList.java