mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
OMG fix project leak at last (which crashed UsageViewTest)
GitOrigin-RevId: c1a6cc0d0f66f3c8ea1a4f0e5ae8cc91555a6fce
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a33fb84a47
commit
55f16d56fa
@@ -3,10 +3,13 @@ package com.intellij.configurationStore
|
||||
|
||||
import com.intellij.ProjectTopics
|
||||
import com.intellij.ide.highlighter.ModuleFileType
|
||||
import com.intellij.idea.IdeaTestApplication
|
||||
import com.intellij.openapi.application.AppUIExecutor
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.application.impl.coroutineDispatchingContext
|
||||
import com.intellij.openapi.application.impl.inWriteAction
|
||||
import com.intellij.openapi.command.impl.UndoManagerImpl
|
||||
import com.intellij.openapi.command.undo.UndoManager
|
||||
import com.intellij.openapi.components.StoragePathMacros
|
||||
import com.intellij.openapi.components.stateStore
|
||||
import com.intellij.openapi.module.Module
|
||||
@@ -25,6 +28,7 @@ import com.intellij.util.io.readText
|
||||
import com.intellij.util.io.systemIndependentPath
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.junit.After
|
||||
import org.junit.ClassRule
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
@@ -87,6 +91,14 @@ internal class ModuleStoreRenameTest {
|
||||
DisposeModulesRule(projectRule)
|
||||
)
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
ApplicationManager.getApplication().invokeAndWait {
|
||||
(UndoManager.getInstance(projectRule.project) as UndoManagerImpl).dropHistoryInTests()
|
||||
(UndoManager.getInstance(projectRule.project) as UndoManagerImpl).flushCurrentCommandMerger()
|
||||
}
|
||||
}
|
||||
|
||||
// project structure
|
||||
@Test
|
||||
fun `rename module using model`() = runBlocking<Unit> {
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.intellij.openapi.application.impl.coroutineDispatchingContext
|
||||
import com.intellij.openapi.application.runUndoTransparentWriteAction
|
||||
import com.intellij.openapi.command.impl.UndoManagerImpl
|
||||
import com.intellij.openapi.command.undo.DocumentReferenceManager
|
||||
import com.intellij.openapi.command.undo.UndoManager
|
||||
import com.intellij.openapi.components.impl.stores.IProjectStore
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.module.Module
|
||||
@@ -97,6 +98,12 @@ class ProjectRule(val projectDescriptor: LightProjectDescriptor = LightProjectDe
|
||||
|
||||
public override fun after() {
|
||||
if (projectOpened.compareAndSet(true, false)) {
|
||||
if (sharedProject != null) {
|
||||
ApplicationManager.getApplication().invokeAndWait {
|
||||
(UndoManager.getInstance(sharedProject!!) as UndoManagerImpl).dropHistoryInTests()
|
||||
(UndoManager.getInstance(sharedProject!!) as UndoManagerImpl).flushCurrentCommandMerger()
|
||||
}
|
||||
}
|
||||
sharedProject?.let { runInEdtAndWait { ProjectManagerEx.getInstanceEx().forceCloseProject(it, false) } }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user