diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java index d05622504565..cdd0fa0eb608 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java @@ -89,12 +89,13 @@ public class InstalledPluginsTableModel { (descriptor, pair) -> { }); + Map<PluginId, IdeaPluginDescriptorImpl> pluginIdMap = PluginManagerCore.buildPluginIdMap(); List<IdeaPluginDescriptorImpl> impls = descriptors.stream() - .filter(IdeaPluginDescriptorImpl.class::isInstance) - .map(IdeaPluginDescriptorImpl.class::cast) + .map(descriptor -> descriptor instanceof IdeaPluginDescriptorImpl ? + (IdeaPluginDescriptorImpl)descriptor : + findByPluginId(descriptor.getPluginId(), pluginIdMap)) .collect(Collectors.toCollection(ArrayList::new)); - Map<PluginId, IdeaPluginDescriptorImpl> pluginIdMap = PluginManagerCore.buildPluginIdMap(); List<IdeaPluginDescriptorImpl> descriptorsToUpdate = action.isEnable() ? getDependenciesToEnable(impls, tempEnabled, pluginIdMap) : getDependentsToDisable(impls, tempEnabled, pluginIdMap); @@ -116,6 +117,12 @@ public class InstalledPluginsTableModel { updatePluginDependencies(pluginIdMap); } + private static @NotNull IdeaPluginDescriptorImpl findByPluginId(@NotNull PluginId pluginId, + @NotNull Map<PluginId, IdeaPluginDescriptorImpl> pluginIdMap) { + return Objects.requireNonNull(pluginIdMap.get(pluginId), + "'" + pluginId + "' not found"); + } + private static void setNewEnabled(@NotNull Collection<? extends IdeaPluginDescriptor> descriptors, @NotNull Map<PluginId, PluginEnabledState> enabledMap, @NotNull PluginEnableDisableAction action, |