From 2fa7ef24825b17d0b8a3ad6a2b919041c64ab8b3 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Wed, 17 Jul 2019 13:32:06 +0300 Subject: [PATCH] Tests, refactoring: replace invokeLater with TransactionGuard to avoid situations that project isDisposed during inlays printing --- .../idea/scratch/output/ToolWindowScratchOutputHandler.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/output/ToolWindowScratchOutputHandler.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/output/ToolWindowScratchOutputHandler.kt index 2a2c8f7f1a5..707a0542335 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/output/ToolWindowScratchOutputHandler.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/output/ToolWindowScratchOutputHandler.kt @@ -23,6 +23,7 @@ import com.intellij.execution.ui.ConsoleViewContentType import com.intellij.ide.scratch.ScratchFileType import com.intellij.openapi.Disposable import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.application.TransactionGuard import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.editor.ex.EditorEx import com.intellij.openapi.project.Project @@ -180,7 +181,7 @@ private object TestOutputHandler : ScratchOutputHandlerAdapter() { } override fun onFinish(file: ScratchFile) { - ApplicationManager.getApplication().invokeLater { + TransactionGuard.submitTransaction(file.project, Runnable { val psiFile = file.getPsiFile() ?: error( "PsiFile cannot be found for scratch to render inlays in tests:\n" + @@ -200,7 +201,7 @@ private object TestOutputHandler : ScratchOutputHandlerAdapter() { testPrint(psiFile, listOf(errors.joinToString(prefix = "/** ", postfix = " */"))) errors.clear() } - } + }) } private fun testPrint(file: PsiFile, comments: List) {