From 5bf855b989a2ab8d1d1123bf0abf2b714a2cac96 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Mon, 23 Nov 2015 12:59:39 +0100 Subject: [PATCH] Potential leak in NonProjectFileAccessTest fixed --- .../fileEditor/NonProjectFileAccessTest.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/NonProjectFileAccessTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/NonProjectFileAccessTest.java index 2eed46ce7ffa..cf4a21e1e4e5 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/NonProjectFileAccessTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/NonProjectFileAccessTest.java @@ -43,6 +43,7 @@ import com.intellij.testFramework.PsiTestUtil; import com.intellij.ui.EditorNotifications; import com.intellij.ui.EditorNotificationsImpl; import com.intellij.util.NullableFunction; +import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -50,6 +51,8 @@ import java.util.*; public class NonProjectFileAccessTest extends HeavyFileEditorManagerTestCase { + private Set myOpenedFiles = new THashSet<>(); + @Override public void setUp() throws Exception { super.setUp(); @@ -61,10 +64,18 @@ public class NonProjectFileAccessTest extends HeavyFileEditorManagerTestCase { @Override protected void tearDown() throws Exception { - NonProjectFileWritingAccessProvider.setCustomUnlocker(null); - NonProjectFileWritingAccessProvider.enableChecksInTests(getProject(), false); - super.tearDown(); - ProjectManagerEx.getInstanceEx().unblockReloadingProjectOnExternalChanges(); // unblock only after project is disposed + try { + NonProjectFileWritingAccessProvider.setCustomUnlocker(null); + NonProjectFileWritingAccessProvider.enableChecksInTests(getProject(), false); + FileEditorManager editorManager = FileEditorManager.getInstance(getProject()); + for (VirtualFile file : myOpenedFiles) { + editorManager.closeFile(file); + } + } + finally { + super.tearDown(); + ProjectManagerEx.getInstanceEx().unblockReloadingProjectOnExternalChanges(); // unblock only after project is disposed + } } public void testBasicAccessCheck() throws Exception { @@ -351,6 +362,7 @@ public class NonProjectFileAccessTest extends HeavyFileEditorManagerTestCase { } private Editor getEditor(VirtualFile file) { + myOpenedFiles.add(file); return FileEditorManager.getInstance(getProject()).openTextEditor(new OpenFileDescriptor(getProject(), file, 0), false); }