From 5b48f63bb9e63cc4fb43598e1a83f956b3eb6509 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Sat, 8 Feb 2020 15:06:51 +0100 Subject: [PATCH] Added missed runReadAction to access psi on bg thread Relates to #KT-24122 --- .../KotlinOptimizeImportsRefactoringHelper.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinOptimizeImportsRefactoringHelper.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinOptimizeImportsRefactoringHelper.kt index d91dbfd9cef..0fd4a20edd9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinOptimizeImportsRefactoringHelper.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinOptimizeImportsRefactoringHelper.kt @@ -31,6 +31,7 @@ import com.intellij.usageView.UsageInfo import com.intellij.util.IncorrectOperationException import org.jetbrains.kotlin.idea.inspections.KotlinUnusedImportInspection import org.jetbrains.kotlin.idea.util.application.executeWriteCommand +import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtImportDirective import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer @@ -72,9 +73,11 @@ class KotlinOptimizeImportsRefactoringHelper : RefactoringHelper> { for ((counter, pointer) in pointers.withIndex()) { indicator.fraction = counter.toDouble() / myTotal - val directive = pointer.element - if (directive?.isValid == true) { - val presentableUrl = directive.containingFile.virtualFile.presentableUrl + runReadAction { + val element = pointer.element + if (element?.isValid == true) element!! else null + }?.let { directive -> + val presentableUrl = runReadAction { directive.containingFile }.virtualFile.presentableUrl indicator.text2 = presentableUrl ApplicationManager.getApplication().invokeAndWait { project.executeWriteCommand("delete $presentableUrl") {