PersistentList<T> (@NotNull Set<String> keys) { List<KeyedLazyInstance<T>> extensions = getExtensions(); synchronized (lock) { PersistentList<T> explicit = buildExtensionsFromExplicitRegistration(keys::contains); PersistentList<T> result = buildExtensionsFromExtensionPoint(bean -> keys.contains(bean.getKey()), extensions); return explicit.addAll(result); } }