diff --git a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java index 4dd963bf1619..dd80de7fa569 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java @@ -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); diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/OverwriteProjectConfigurationTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/OverwriteProjectConfigurationTest.java index 622969854639..e9e0fa5b8bbd 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/OverwriteProjectConfigurationTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/OverwriteProjectConfigurationTest.java @@ -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());