From 417b5eee770fdddc202b46f8c8ffff90e6eb459f Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 14 Jun 2019 18:29:10 +0200 Subject: [PATCH] Use correct classloader when plugin registers an action group of platform class with plugin icon (IDEA-216197) GitOrigin-RevId: 1b6da4bd3803d67c297129924c206fe3709d9d15 --- .../openapi/actionSystem/impl/ActionManagerImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java index ceed02546452..b835ae2d187c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java @@ -177,7 +177,16 @@ public final class ActionManagerImpl extends ActionManagerEx implements Disposab String iconPath = stub.getIconPath(); if (iconPath != null) { Class actionClass = anAction.getClass(); - setIconFromClass(actionClass, actionClass.getClassLoader(), iconPath, anAction.getTemplatePresentation(), stub.getPluginId()); + ClassLoader classLoader = actionClass.getClassLoader(); + + if (stub.getPluginId() != null) { + final IdeaPluginDescriptor plugin = PluginManager.getPlugin(stub.getPluginId()); + if (plugin != null) { + classLoader = plugin.getPluginClassLoader(); + } + } + + setIconFromClass(actionClass, classLoader, iconPath, anAction.getTemplatePresentation(), stub.getPluginId()); } }