protected void silentlyReplaceItem(@NotNull T oldItem, @NotNull T newItem, int index) {
    // silently replace item
    List<T> items = getItems();
    items.set(index == -1 ? ContainerUtil.indexOfIdentity(items, oldItem) : index, newItem);
  }
protected void silentlyReplaceItem(@NotNull T oldItem, @NotNull T newItem, int index)