fix quadratic extension registration

This commit is contained in:
Alexey Kudravtsev
2018-10-11 15:37:16 +03:00
parent bd7146ba54
commit dc79b369cc
@@ -117,6 +117,11 @@ public final class ExtensionPointImpl<T> implements ExtensionPoint<T> {
break;
}
}
if (getExtensionIndex(extension) != -1) {
LOG.error("Extension was already added: " + extension);
return;
}
registerExtension(extension, adapter, index, true);
}
else {
@@ -126,11 +131,6 @@ public final class ExtensionPointImpl<T> implements ExtensionPoint<T> {
}
private void registerExtension(@NotNull T extension, @NotNull ExtensionComponentAdapter adapter, int index, boolean runNotifications) {
if (getExtensionIndex(extension) != -1) {
LOG.error("Extension was already added: " + extension);
return;
}
Class<T> extensionClass = getExtensionClass();
if (!extensionClass.isInstance(extension)) {
LOG.error("Extension " + extension.getClass() + " does not implement " + extensionClass);