diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/RealMavenExecutionTest.kt b/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/RealMavenExecutionTest.kt index 838f2e23e40f..5fbe7ec8eea2 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/RealMavenExecutionTest.kt +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/RealMavenExecutionTest.kt @@ -6,10 +6,8 @@ import com.intellij.build.events.BuildEvent import com.intellij.build.events.FailureResult import com.intellij.build.events.FinishBuildEvent import com.intellij.build.events.SuccessResult -import com.intellij.openapi.Disposable import com.intellij.openapi.components.service import com.intellij.openapi.externalSystem.service.execution.ExternalSystemRunConfigurationViewManager -import com.intellij.openapi.util.Disposer import com.intellij.openapi.util.io.toCanonicalPath import com.intellij.openapi.vfs.LocalFileSystem import com.intellij.util.io.copyRecursively @@ -30,11 +28,9 @@ import kotlin.io.path.listDirectoryEntries class RealMavenExecutionTest : MavenExecutionTest() { private val myEvents: MutableList = CopyOnWriteArrayList() - private lateinit var myDisposable: Disposable override fun setUp() { super.setUp() - myDisposable = Disposer.newDisposable(testRootDisposable) project.service().addListener(object : BuildProgressListener { override fun onEvent(buildId: Any, event: BuildEvent) { myEvents.add(event) @@ -42,20 +38,6 @@ class RealMavenExecutionTest : MavenExecutionTest() { }, myDisposable) } - override fun tearDown() { - try { - if (::myDisposable.isInitialized) { - Disposer.dispose(myDisposable) - } - } - catch (e: Throwable) { - addSuppressedException(e) - } - finally { - super.tearDown() - } - } - @Test fun testExternalExecutor() = runBlocking { createProjectSubFile("src/main/java/A.java", "public class A {}") diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/navigator/structure/MavenProjectsNavigatorTest.kt b/plugins/maven/src/test/java/org/jetbrains/idea/maven/navigator/structure/MavenProjectsNavigatorTest.kt index e6b96e242cc0..5dcb5203bbc1 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/navigator/structure/MavenProjectsNavigatorTest.kt +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/navigator/structure/MavenProjectsNavigatorTest.kt @@ -33,7 +33,7 @@ class MavenProjectsNavigatorTest : MavenMultiVersionImportingTestCase() { override fun invokeLater(runnable: Runnable) { runnable.run() } - }, testRootDisposable) + }, myDisposable) initProjectsManager(false) withContext(Dispatchers.EDT) { diff --git a/plugins/maven/testFramework/src/com/intellij/maven/testFramework/MavenImportingTestCase.kt b/plugins/maven/testFramework/src/com/intellij/maven/testFramework/MavenImportingTestCase.kt index 0bc450eaeafa..4f16f1fb27fc 100644 --- a/plugins/maven/testFramework/src/com/intellij/maven/testFramework/MavenImportingTestCase.kt +++ b/plugins/maven/testFramework/src/com/intellij/maven/testFramework/MavenImportingTestCase.kt @@ -74,7 +74,7 @@ abstract class MavenImportingTestCase : MavenTestCase() { private var myNotificationAware: AutoImportProjectNotificationAware? = null private var myProjectTracker: AutoImportProjectTracker? = null private var isAutoReloadEnabled = false - private lateinit var myDisposable: Disposable + protected lateinit var myDisposable: Disposable // plugin resolution is slow and many tests do not need it protected open fun skipPluginResolution(): Boolean { @@ -94,7 +94,7 @@ abstract class MavenImportingTestCase : MavenTestCase() { return PluginResolutionResult(emptySet()) } } - project.replaceService(MavenPluginResolver::class.java, pluginResolver, project) + project.replaceService(MavenPluginResolver::class.java, pluginResolver, myDisposable) } myCodeStyleSettingsTracker = CodeStyleSettingsTracker { currentCodeStyleSettings } val settingsFile = MavenUtil.resolveGlobalSettingsFile(BundledMaven3) @@ -109,6 +109,11 @@ abstract class MavenImportingTestCase : MavenTestCase() { @Throws(Exception::class) override fun tearDown() { runAll( + ThrowableRunnable { + if (::myDisposable.isInitialized) { + Disposer.dispose(myDisposable) + } + }, ThrowableRunnable { WriteAction.runAndWait { JavaAwareProjectJdkTableImpl.removeInternalJdkInTests() } }, ThrowableRunnable { TestDialogManager.setTestDialog(TestDialog.DEFAULT) }, ThrowableRunnable { removeFromLocalRepository("test") }, @@ -125,11 +130,6 @@ abstract class MavenImportingTestCase : MavenTestCase() { myCodeStyleSettingsTracker!!.checkForSettingsDamage() } }, - ThrowableRunnable { - if (::myDisposable.isInitialized) { - Disposer.dispose(myDisposable) - } - }, ) }