diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesTest.java index c03d1d073ddc..332e6c5f8946 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesTest.java @@ -161,7 +161,7 @@ public class DaemonRespondToChangesTest extends DaemonAnalyzerTestCase { Project project = getProject(); if (project != null) { doPostponedFormatting(project); - ((ProjectManagerImpl)ProjectManagerEx.getInstanceEx()).closeProject(project, false, false, false); + ((ProjectManagerImpl)ProjectManagerEx.getInstanceEx()).forceCloseProject(project, false); } } finally { 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 4e403298d586..350955561a42 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 @@ -566,7 +566,7 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable { @TestOnly public Collection closeTestProject(@NotNull final Project project) { assert ApplicationManager.getApplication().isUnitTestMode(); - closeProject(project, false, false, false); + forceCloseProject(project, false); Project[] projects = getOpenProjects(); return projects.length == 0 ? Collections.emptyList() : Arrays.asList(projects); } @@ -604,8 +604,13 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable { return closeProject(project, true, false, true); } + @TestOnly + public boolean forceCloseProject(@NotNull Project project, boolean dispose) { + return closeProject(project, false, dispose, false); + } + @SuppressWarnings("TestOnlyProblems") - public boolean closeProject(@NotNull final Project project, final boolean save, final boolean dispose, boolean checkCanClose) { + public boolean closeProject(@NotNull final Project project, final boolean saveProject, final boolean dispose, boolean checkCanClose) { Application app = ApplicationManager.getApplication(); if (app.isWriteAccessAllowed()) { throw new IllegalStateException("Must not call closeProject() from under write action because fireProjectClosing() listeners must have a chance to do something useful"); @@ -634,7 +639,7 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable { try { myBusPublisher.projectClosingBeforeSave(project); - if (save) { + if (saveProject) { FileDocumentManager.getInstance().saveAllDocuments(); project.save(); app.saveSettings(); diff --git a/platform/testFramework/src/com/intellij/testFramework/FixtureRule.kt b/platform/testFramework/src/com/intellij/testFramework/FixtureRule.kt index 0f9ffea86f4e..470f1245eff4 100644 --- a/platform/testFramework/src/com/intellij/testFramework/FixtureRule.kt +++ b/platform/testFramework/src/com/intellij/testFramework/FixtureRule.kt @@ -107,7 +107,7 @@ class ProjectRule : ApplicationRule() { override public fun after() { if (projectOpened.compareAndSet(true, false)) { - sharedProject?.let { runInEdtAndWait { (ProjectManager.getInstance() as ProjectManagerImpl).closeProject(it, false, false, false) } } + sharedProject?.let { runInEdtAndWait { (ProjectManager.getInstance() as ProjectManagerImpl).forceCloseProject(it, false) } } } } @@ -243,7 +243,7 @@ fun Project.use(task: (Project) -> Unit) { task(this) } finally { - runInEdtAndWait { projectManager.closeProject(this, false, true, false) } + runInEdtAndWait { projectManager.forceCloseProject(this, true) } } } @@ -252,7 +252,7 @@ class DisposeNonLightProjectsRule : ExternalResource() { val projectManager = if (ApplicationManager.getApplication().isDisposed) null else ProjectManager.getInstance() as ProjectManagerImpl projectManager?.openProjects?.forEachGuaranteed { if (!ProjectManagerImpl.isLight(it)) { - runInEdtAndWait { projectManager.closeProject(it, false, true, false) } + runInEdtAndWait { projectManager.forceCloseProject(it, true) } } } } diff --git a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java index e816d4881d4c..9aa516e4142e 100644 --- a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java @@ -531,7 +531,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro for (Project project : projectManager.closeTestProject(projectToClose)) { runAll = runAll .append(() -> { throw new IllegalStateException("Test project is not disposed: " + project + ";\n created in: " + getCreationPlace(project)); }) - .append(() -> ((ProjectManagerImpl)projectManager).closeProject(project, false, true, false)); + .append(() -> ((ProjectManagerImpl)projectManager).forceCloseProject(project, true)); } } runAll.append(() -> WriteAction.run(() -> Disposer.dispose(projectToClose))).run();