diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/JavaToKotlinAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/JavaToKotlinAction.kt index d6c4985c5b9..9b6871f57ef 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/JavaToKotlinAction.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/JavaToKotlinAction.kt @@ -106,9 +106,7 @@ class JavaToKotlinAction : AnAction() { if (!ProgressManager.getInstance().runProcessWithProgressSynchronously( - { - runReadAction(::convert) - }, + ::convert, title, true, project)) return emptyList() diff --git a/j2k/src/org/jetbrains/kotlin/j2k/JavaToKotlinConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/JavaToKotlinConverter.kt index 1bf9c40d23f..34692758d98 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/JavaToKotlinConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/JavaToKotlinConverter.kt @@ -17,10 +17,12 @@ package org.jetbrains.kotlin.j2k import com.intellij.lang.java.JavaLanguage +import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.editor.RangeMarker import com.intellij.openapi.progress.* import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Computable import com.intellij.psi.* import com.intellij.psi.impl.source.DummyHolder import org.jetbrains.kotlin.idea.KotlinLanguage @@ -64,15 +66,19 @@ class JavaToKotlinConverter( fun filesToKotlin(files: List, postProcessor: PostProcessor, progress: ProgressIndicator = EmptyProgressIndicator()): FilesResult { val withProgressProcessor = WithProgressProcessor(progress, files) + val (results, externalCodeProcessing) = ApplicationManager.getApplication().runReadAction(Computable { + elementsToKotlin(files, withProgressProcessor) + }) - val (results, externalCodeProcessing) = elementsToKotlin(files, withProgressProcessor) val texts = withProgressProcessor.processItems(0.5, results.withIndex()) { pair -> val (i, result) = pair try { - val kotlinFile = KtPsiFactory(project).createAnalyzableFile("dummy.kt", result!!.text, files[i]) + val kotlinFile = ApplicationManager.getApplication().runReadAction(Computable { + KtPsiFactory(project).createAnalyzableFile("dummy.kt", result!!.text, files[i]) + }) - result.importsToAdd.forEach { postProcessor.insertImport(kotlinFile, it) } + result!!.importsToAdd.forEach { postProcessor.insertImport(kotlinFile, it) } AfterConversionPass(project, postProcessor).run(kotlinFile, range = null)