docs: @Override
    public void delete(Object obj) {
      String id = this.keyOf(obj);
      lock.writeLock().lock();
      try {
        this.populated = true;
        if (this.knownObjects == null) {
          if (!this.items.containsKey(id)) {
            // Presumably, this was deleted when a relist happened.
            // Don't provide a second report of the same deletion.
            return;
          }
        } else {
          // We only want to skip the "deletion" action if the object doesn't
          // exist in knownObjects and it doesn't have corresponding item in items.
          if (this.knownObjects.getByKey(id) == null && !this.items.containsKey(id)) {
            return;
          }
        }
        this.queueActionLocked(DeltaType.Deleted, obj);
      } finally {
        lock.writeLock().unlock();
      }
    }