From 4197bbe700561debb23d00508266e93bbacf8571 Mon Sep 17 00:00:00 2001 From: Denis Zhdanov Date: Thu, 9 Apr 2015 08:44:27 +0300 Subject: [PATCH] Avoid disposing process failure when particular extension is removed/replaced --- .../src/com/intellij/core/CoreApplicationEnvironment.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java b/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java index cce44c3f1e1a..be5f256384ef 100644 --- a/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java +++ b/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java @@ -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); + } } }); }