code: private void sync(Collection<FileDescriptor> target, Map<String, FileDescriptor> after) {
          Map<String, FileDescriptor> before = getCache(target);
          Map<String, FileDescriptor> all = new HashMap<>();
          all.putAll(before);
          all.putAll(after);
          for (Map.Entry<String, FileDescriptor> entry : all.entrySet()) {
              String key = entry.getKey();
              FileDescriptor fileDescriptor = entry.getValue();
              boolean hasBefore = before.containsKey(key);
              boolean hasAfter = after.containsKey(key);
              if (hasBefore && !hasAfter) {
                  target.remove(fileDescriptor);
              } else if (!hasBefore && hasAfter) {
                  target.add(fileDescriptor);
              }
          }
      }
docs: Sync the given target collection with the new state from the cache map.
  
  @param target The target collection.
  @param after  The new state to sync to.