From f4bb61839e3a8d3721e200c3249adb5e816c5030 Mon Sep 17 00:00:00 2001 From: Benoit Lubek Date: Wed, 2 Aug 2023 16:47:00 +0200 Subject: [PATCH] [IJ plugin] Avoid a crash caught in inspection (#5139) --- .../compat/KotlinFindUsagesHandlerFactoryCompat.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/navigation/compat/KotlinFindUsagesHandlerFactoryCompat.kt b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/navigation/compat/KotlinFindUsagesHandlerFactoryCompat.kt index 22ffcf1afe7..ee36b5ecac6 100644 --- a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/navigation/compat/KotlinFindUsagesHandlerFactoryCompat.kt +++ b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/navigation/compat/KotlinFindUsagesHandlerFactoryCompat.kt @@ -22,7 +22,13 @@ class KotlinFindUsagesHandlerFactoryCompat(project: Project) : FindUsagesHandler .onFailure { logw(it, "Could not load either $POST_231_CLASS_NAME nor $PRE_231_CLASS_NAME") } .getOrNull() - private val delegate: FindUsagesHandlerFactory? = delegateClass?.let { it.getConstructor(Project::class.java).newInstance(project) as FindUsagesHandlerFactory } + private val delegate: FindUsagesHandlerFactory? = try { + delegateClass?.let { it.getConstructor(Project::class.java).newInstance(project) as FindUsagesHandlerFactory } + } catch (e: Exception) { + // ProcessCanceledException can sometimes happen here + logw(e, "Could not instantiate KotlinFindUsagesHandlerFactory") + null + } override fun canFindUsages(element: PsiElement): Boolean {