Maven: ivalid VirtualFile access fix + correctly registering postStartupActivity
authorAnton Makeev <Anton.Makeev@jetbrains.com>
Fri, 12 Mar 2010 15:53:59 +0000 (18:53 +0300)
committerAnton Makeev <Anton.Makeev@jetbrains.com>
Fri, 12 Mar 2010 17:22:16 +0000 (20:22 +0300)
plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsNavigatorPanel.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java

index a427248ae7a77589c56418578069640331c9e772..ea966e527f33226ca35ef12daa7e270624c37afa 100644 (file)
@@ -113,18 +113,10 @@ public class MavenProjectsNavigatorPanel extends SimpleToolWindowPanel implement
     return null;
   }
 
-  private List<MavenProject> extractProjectNodes() {
-    List<MavenProject> result = new ArrayList<MavenProject>();
-    for (MavenProjectsStructure.ProjectNode each : getSelectedProjectNodes()) {
-      result.add(each.getMavenProject());
-    }
-    return result.isEmpty() ? null : result;
-  }
-
   private VirtualFile extractVirtualFile() {
     for (MavenProjectsStructure.MavenSimpleNode each : getSelectedNodes(MavenProjectsStructure.MavenSimpleNode.class)) {
       VirtualFile file = each.getVirtualFile();
-      if (file != null) return file;
+      if (file != null && file.isValid()) return file;
     }
 
     final MavenProjectsStructure.ProjectNode projectNode = getContextProjectNode();
@@ -138,7 +130,7 @@ public class MavenProjectsNavigatorPanel extends SimpleToolWindowPanel implement
     final List<VirtualFile> files = new ArrayList<VirtualFile>();
     for (MavenProjectsStructure.MavenSimpleNode each : getSelectedNodes(MavenProjectsStructure.MavenSimpleNode.class)) {
       VirtualFile file = each.getVirtualFile();
-      if (file != null) files.add(file);
+      if (file != null && file.isValid()) files.add(file);
     }
     return files.isEmpty() ? null : VfsUtil.toVirtualFileArray(files);
   }
index 48aa53d48e9445b0982c74f9a29775eb9658594a..6001367c0b9e8b790639607cc46893e404b83294 100644 (file)
@@ -19,6 +19,7 @@ import com.intellij.codeInsight.template.TemplateManager;
 import com.intellij.codeInsight.template.impl.TemplateImpl;
 import com.intellij.ide.fileTemplates.FileTemplate;
 import com.intellij.ide.fileTemplates.FileTemplateManager;
+import com.intellij.ide.startup.StartupManagerEx;
 import com.intellij.notification.Notification;
 import com.intellij.notification.NotificationType;
 import com.intellij.notification.Notifications;
@@ -137,7 +138,7 @@ public class MavenUtil {
       return;
     }
 
-    if (!project.isInitialized()) {
+    if (!StartupManagerEx.getInstanceEx(project).postStartupActivityPassed()) {
       StartupManager.getInstance(project).registerPostStartupActivity(r);
       return;
     }