diff --git a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoManagerImpl.java index 07b616c7ebb3..f4cd20890661 100644 --- a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoManagerImpl.java @@ -85,6 +85,10 @@ public class UndoManagerImpl extends UndoManager implements Disposable { return Registry.intValue("undo.documentUndoLimit"); } + public UndoManagerImpl() { + this(null); + } + public UndoManagerImpl(@Nullable ProjectEx project) { myProject = project; diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java index 187eae274f20..b9d8f71685fc 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java @@ -93,16 +93,20 @@ class HeavyIdeaTestFixtureImpl extends BaseFixture implements HeavyIdeaTestFixtu @Override public void tearDown() throws Exception { - RunAll runAll = new RunAll() - .append(() -> LightPlatformTestCase.doTearDown(getProject(), myApplication)) - .append(() -> { - for (ModuleFixtureBuilder moduleFixtureBuilder : myModuleFixtureBuilders) { - moduleFixtureBuilder.getFixture().tearDown(); - } - }) - .append(() -> EdtTestUtil.runInEdtAndWait(() -> PlatformTestCase.closeAndDisposeProjectAndCheckThatNoOpenProjects(getProject()))) - .append(() -> InjectedLanguageManagerImpl.checkInjectorsAreDisposed(getProject())) - .append(() -> myProject = null); + RunAll runAll = new RunAll(); + + if (myProject != null) { + runAll = runAll + .append(() -> LightPlatformTestCase.doTearDown(getProject(), myApplication)) + .append(() -> { + for (ModuleFixtureBuilder moduleFixtureBuilder : myModuleFixtureBuilders) { + moduleFixtureBuilder.getFixture().tearDown(); + } + }) + .append(() -> EdtTestUtil.runInEdtAndWait(() -> PlatformTestCase.closeAndDisposeProjectAndCheckThatNoOpenProjects(getProject()))) + .append(() -> InjectedLanguageManagerImpl.checkInjectorsAreDisposed(getProject())) + .append(() -> myProject = null); + } JarFileSystemImpl.cleanupForNextTest(); @@ -128,8 +132,16 @@ class HeavyIdeaTestFixtureImpl extends BaseFixture implements HeavyIdeaTestFixtu runAll .append(super::tearDown) - .append(() -> myEditorListenerTracker.checkListenersLeak()) - .append(() -> myThreadTracker.checkLeak()) + .append(() -> { + if (myEditorListenerTracker != null) { + myEditorListenerTracker.checkListenersLeak(); + } + }) + .append(() -> { + if (myThreadTracker != null) { + myThreadTracker.checkLeak(); + } + }) .append(LightPlatformTestCase::checkEditorsReleased) .append(() -> { if (myOldSdks != null) {