Avoid disposing process failure when particular extension is removed/replaced

This commit is contained in:
Denis Zhdanov
2015-04-09 08:44:27 +03:00
parent 7510b9ab86
commit 4197bbe700
@@ -281,7 +281,11 @@ public class CoreApplicationEnvironment {
Disposer.register(myParentDisposable, new Disposable() {
@Override
public void dispose() {
extensionPoint.unregisterExtension(extension);
// There is a possible case that particular extension was replaced in particular environment, e.g. Upsource
// replaces some IntelliJ extensions.
if (extensionPoint.hasExtension(extension)) {
extensionPoint.unregisterExtension(extension);
}
}
});
}