void (@NotNull KeyT key, @NotNull T t) { String stringKey = keyToString(key); synchronized (lock) { PersistentList<T> value = explicitExtensions.get(stringKey); explicitExtensions = explicitExtensions.put(stringKey, value == null ? persistentListOf(t) : value.add(t)); invalidateCacheForExtension(stringKey); } }