diff --git a/platform/platform-impl/src/com/intellij/ide/TypePresentationServiceImpl.java b/platform/platform-impl/src/com/intellij/ide/TypePresentationServiceImpl.java index d5a0ac0f446a..bd3400f2f03b 100644 --- a/platform/platform-impl/src/com/intellij/ide/TypePresentationServiceImpl.java +++ b/platform/platform-impl/src/com/intellij/ide/TypePresentationServiceImpl.java @@ -1,8 +1,11 @@ // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.ide; +import com.intellij.ide.plugins.DynamicPluginListener; +import com.intellij.ide.plugins.IdeaPluginDescriptor; import com.intellij.ide.presentation.Presentation; import com.intellij.ide.presentation.PresentationProvider; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.util.ClassExtension; import com.intellij.openapi.util.IconLoader; @@ -10,6 +13,7 @@ import com.intellij.openapi.util.NullableLazyValue; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.containers.ConcurrentFactoryMap; import com.intellij.util.containers.ContainerUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -84,6 +88,13 @@ public class TypePresentationServiceImpl extends TypePresentationService { for (TypeNameEP ep : TypeNameEP.EP_NAME.getExtensionList()) { myNames.put(ep.className, ep.getTypeName()); } + + ApplicationManager.getApplication().getMessageBus().connect().subscribe(DynamicPluginListener.TOPIC, new DynamicPluginListener() { + @Override + public void beforePluginUnload(@NotNull IdeaPluginDescriptor pluginDescriptor) { + mySuperClasses.clear(); + } + }); } @Nullable