From a9f1ee8e2403404afcd4ed013d57c907f6ea05bb Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 13 May 2025 17:58:34 +0200 Subject: [PATCH] [lsp] remove annoying `Getting service from write-action leads to possible deadlock` check GitOrigin-RevId: a6b91cd310bba9a9eca575d08120bb959ef42ca0 --- .../serviceContainer/ServiceInstanceInitializer.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platform/service-container/src/com/intellij/serviceContainer/ServiceInstanceInitializer.kt b/platform/service-container/src/com/intellij/serviceContainer/ServiceInstanceInitializer.kt index cfb95e2eead7..5a6dc83a8680 100644 --- a/platform/service-container/src/com/intellij/serviceContainer/ServiceInstanceInitializer.kt +++ b/platform/service-container/src/com/intellij/serviceContainer/ServiceInstanceInitializer.kt @@ -16,6 +16,7 @@ import com.intellij.platform.instanceContainer.instantiation.instantiate import com.intellij.platform.instanceContainer.instantiation.withStoredTemporaryContext import com.intellij.platform.instanceContainer.internal.InstanceInitializer import kotlinx.coroutines.CoroutineScope +import org.jetbrains.annotations.ApiStatus import java.util.concurrent.CancellationException internal abstract class ServiceInstanceInitializer( @@ -108,9 +109,15 @@ private fun checkWriteAction(instanceClass: Class<*>) { if (!LOG.isDebugEnabled) { return } + if (!checkServiceFromWriteAccess) { + return + } val app = ApplicationManager.getApplication() ?: return if (app.isWriteAccessAllowed && !app.isUnitTestMode && PersistentStateComponent::class.java.isAssignableFrom(instanceClass)) { LOG.warn(Throwable("Getting service from write-action leads to possible deadlock. Service implementation ${instanceClass.name}")) } } + +@ApiStatus.Internal +var checkServiceFromWriteAccess: Boolean = true