Tests, refactoring: replace invokeLater with TransactionGuard to avoid situations that project isDisposed during inlays printing

This commit is contained in:
Natalia Selezneva
2019-07-17 13:32:06 +03:00
parent ec1bef639f
commit 2fa7ef2482
@@ -23,6 +23,7 @@ import com.intellij.execution.ui.ConsoleViewContentType
import com.intellij.ide.scratch.ScratchFileType import com.intellij.ide.scratch.ScratchFileType
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.TransactionGuard
import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.command.WriteCommandAction
import com.intellij.openapi.editor.ex.EditorEx import com.intellij.openapi.editor.ex.EditorEx
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
@@ -180,7 +181,7 @@ private object TestOutputHandler : ScratchOutputHandlerAdapter() {
} }
override fun onFinish(file: ScratchFile) { override fun onFinish(file: ScratchFile) {
ApplicationManager.getApplication().invokeLater { TransactionGuard.submitTransaction(file.project, Runnable {
val psiFile = file.getPsiFile() val psiFile = file.getPsiFile()
?: error( ?: error(
"PsiFile cannot be found for scratch to render inlays in tests:\n" + "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 = " */"))) testPrint(psiFile, listOf(errors.joinToString(prefix = "/** ", postfix = " */")))
errors.clear() errors.clear()
} }
} })
} }
private fun testPrint(file: PsiFile, comments: List<String>) { private fun testPrint(file: PsiFile, comments: List<String>) {