Optimize updating of uplugin node.
authorSergey Evdokimov <sergey.evdokimov@jetbrains.com>
Fri, 27 Sep 2013 16:21:23 +0000 (20:21 +0400)
committerSergey Evdokimov <sergey.evdokimov@jetbrains.com>
Fri, 27 Sep 2013 16:21:53 +0000 (20:21 +0400)
plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsStructure.java

index 75207c31f32f2674bfa178f3c9381888a2f4e59d..30f1e3e3896a582e6cfb3ac11c3cadbd0bac368d 100644 (file)
@@ -1004,12 +1004,14 @@ public class MavenProjectsStructure extends SimpleTreeStructure {
     public void updatePlugins(MavenProject mavenProject) {
       List<MavenPlugin> plugins = mavenProject.getDeclaredPlugins();
 
-      for (PluginNode each : myPluginNodes.toArray(new PluginNode[myPluginNodes.size()])) {
+      for (Iterator<PluginNode> itr = myPluginNodes.iterator(); itr.hasNext(); ) {
+        PluginNode each = itr.next();
+
         if (plugins.contains(each.getPlugin())) {
           each.updatePlugin();
         }
         else {
-          myPluginNodes.remove(each);
+          itr.remove();
         }
       }
       for (MavenPlugin each : plugins) {
@@ -1017,6 +1019,7 @@ public class MavenProjectsStructure extends SimpleTreeStructure {
           myPluginNodes.add(new PluginNode(this, each));
         }
       }
+
       sort(myPluginNodes);
       childrenChanged();
     }