start project dispose under write action

GitOrigin-RevId: a96d6ceeea5e6111df5629196747a55672d20b18
This commit is contained in:
Vladimir Krivosheev
2019-12-20 19:31:06 +00:00
committed by intellij-monorepo-bot
parent 6204c4b129
commit 45eabcf65f
2 changed files with 7 additions and 6 deletions
@@ -719,11 +719,11 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable {
((ProjectImpl)project).disposeEarlyDisposable();
}
if (dispose && project instanceof ProjectImpl) {
((ProjectImpl)project).startDispose();
}
app.runWriteAction(() -> {
if (dispose && project instanceof ProjectImpl) {
((ProjectImpl)project).startDispose();
}
removeFromOpened(project);
fireProjectClosed(project);
@@ -8,6 +8,7 @@ import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.module.ModuleType;
import com.intellij.openapi.module.ModuleTypeId;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ex.ProjectEx;
import com.intellij.openapi.project.ex.ProjectManagerEx;
import com.intellij.openapi.util.Disposer;
import com.intellij.testFramework.HeavyPlatformTestCase;
@@ -41,7 +42,7 @@ public class OverwriteProjectConfigurationTest extends HeavyPlatformTestCase {
Disposer.dispose(disposable);
}
Project recreated = ProjectManagerEx.getInstanceEx().newProjectForTest(myProjectDir, myProject);
Project recreated = ProjectManagerEx.getInstanceEx().newProjectForTest(myProjectDir, ((ProjectEx)myProject).getEarlyDisposable());
PlatformTestUtil.saveProject(recreated);
assertThat(ModuleManager.getInstance(recreated).getModules()).isEmpty();
}
@@ -58,7 +59,7 @@ public class OverwriteProjectConfigurationTest extends HeavyPlatformTestCase {
Disposer.dispose(disposable);
}
Project recreated = ProjectManagerEx.getInstanceEx().newProjectForTest(myProjectDir, myProject);
Project recreated = ProjectManagerEx.getInstanceEx().newProjectForTest(myProjectDir, ((ProjectEx)myProject).getEarlyDisposable());
createModule(recreated, "module", ModuleTypeId.WEB_MODULE);
PlatformTestUtil.saveProject(recreated);
Module module = assertOneElement(ModuleManager.getInstance(recreated).getModules());