diff --git a/platform/ide-core/src/com/intellij/ide/ApplicationInitializedListener.kt b/platform/ide-core/src/com/intellij/ide/ApplicationInitializedListener.kt index 096e411ef4fd..94911cfdd70e 100644 --- a/platform/ide-core/src/com/intellij/ide/ApplicationInitializedListener.kt +++ b/platform/ide-core/src/com/intellij/ide/ApplicationInitializedListener.kt @@ -1,6 +1,9 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide +import com.intellij.diagnostic.PluginException +import com.intellij.ide.plugins.cl.PluginAwareClassLoader +import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.progress.blockingContext import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus @@ -19,18 +22,27 @@ interface ApplicationInitializedListener { * Write actions and time-consuming activities are forbidden because it directly affects application start time. */ suspend fun execute(asyncScope: CoroutineScope) { + val aClass = this::class.java + val message = "Override `execute` (class=$aClass)" + val classLoader = aClass.classLoader + if (classLoader is PluginAwareClassLoader) { + logger().error(PluginException(message, classLoader.pluginId)) + } + else { + logger().error(message) + } blockingContext { @Suppress("DEPRECATION") componentsInitialized() } } - @Deprecated("Use {@link #execute()}", ReplaceWith("execute()")) + @Deprecated("Use [execute]", ReplaceWith("execute()")) fun componentsInitialized() { } } -@Deprecated("Consider avoiding using of ApplicationInitializedListener") +@Deprecated("Consider avoiding using of ApplicationInitializedListener", level = DeprecationLevel.ERROR) abstract class ApplicationInitializedListenerJavaShim : ApplicationInitializedListener { final override suspend fun execute(asyncScope: CoroutineScope) { blockingContext {