From af150618ca5b7dda32b57a34a8392010db194ebc Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Wed, 11 Sep 2019 16:36:13 +0300 Subject: [PATCH] IDEA-CR-52216 skip root pluginId on traversal GitOrigin-RevId: 16fa211c2c3081a3f33d7db077a7bb8264feacd9 --- .../ide/plugins/InstalledPluginsTableModel.java | 16 +++++++++------- .../ide/ui/PluginBooleanOptionDescriptor.java | 8 +++++--- 2 files changed, 14 insertions(+), 10 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 d30189f0c33b..a0960d2a1f5b 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java @@ -100,7 +100,8 @@ public class InstalledPluginsTableModel extends PluginTableModel { if (descriptor instanceof IdeaPluginDescriptorImpl && ((IdeaPluginDescriptorImpl)descriptor).isDeleted()) continue; final Boolean enabled = myEnabled.get(pluginId); if (enabled == null || enabled.booleanValue()) { - for (PluginId depId : PluginManagerCore.pluginIdTraverser().withRoot(descriptor.getPluginId())) { + for (PluginId depId : PluginManagerCore.pluginIdTraverser().withRoot(pluginId)) { + if (depId.equals(pluginId)) continue; Boolean enabled1 = myEnabled.get(depId); if ((enabled1 == null && !ourState.wasUpdated(depId)) || (enabled1 != null && !enabled1.booleanValue())) { @@ -162,13 +163,15 @@ public class InstalledPluginsTableModel extends PluginTableModel { } for (final IdeaPluginDescriptor descriptorToCheckDependencies : descriptorsToCheckDependencies) { - for (PluginId dependencyPluginId : PluginManagerCore.pluginIdTraverser().withRoot(descriptorToCheckDependencies.getPluginId())) { - Boolean enabled = myEnabled.get(dependencyPluginId); + PluginId pluginId = descriptorToCheckDependencies.getPluginId(); + for (PluginId depId : PluginManagerCore.pluginIdTraverser().withRoot(pluginId)) { + if (depId.equals(pluginId)) continue; + Boolean enabled = myEnabled.get(depId); if (enabled == null) { break; } if (newEnabledState && !enabled.booleanValue()) { - deps.add(dependencyPluginId); + deps.add(depId); } if (!newEnabledState) { @@ -179,10 +182,9 @@ public class InstalledPluginsTableModel extends PluginTableModel { if (descriptorToCheckDependencies.isImplementationDetail()) { continue; } - final PluginId pluginDescriptorId = descriptorToCheckDependencies.getPluginId(); for (IdeaPluginDescriptor descriptor : descriptorsWithChangedEnabledState) { - if (dependencyPluginId.equals(descriptor.getPluginId())) { - deps.add(pluginDescriptorId); + if (depId.equals(descriptor.getPluginId())) { + deps.add(pluginId); break; } } diff --git a/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java b/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java index d3d8235eda4a..334c0c4caff0 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java @@ -131,10 +131,12 @@ public class PluginBooleanOptionDescriptor extends BooleanOptionDescription { Collection res = new HashSet<>(); IdeaPluginDescriptor descriptor = maybeDescriptor.get(); - for (PluginId pluginId : PluginManagerCore.pluginIdTraverser().withRoot(descriptor.getPluginId())) { - boolean enabled = optionalDescriptor(pluginId).map(IdeaPluginDescriptor::isEnabled).orElse(true); + PluginId pluginId = descriptor.getPluginId(); + for (PluginId depId : PluginManagerCore.pluginIdTraverser().withRoot(pluginId)) { + if (depId.equals(pluginId)) continue; + boolean enabled = optionalDescriptor(depId).map(IdeaPluginDescriptor::isEnabled).orElse(true); if (!enabled) { - res.add(pluginId); + res.add(depId); } } return res;