No, for sure it’s just a coincidence that it touches run configuration instances very early. But please note that it causes a poor startup performance problem (minor one probably) when you do that.
opened 03:04AM - 01 Aug 25 UTC
## Running environment
- Extra ToolWindow Colorful Icons Lifetime (lermitage.ex… tratci.lifetime) 2025.1.11
- IntelliJ IDEA 2025.1.4.1
- Windows 11 10.0
## Bug description
Please include steps to reproduce (like `go to...`/`click on...` etc.) + expected and actual behaviour.
## Additional info
N/A
## Stack trace
```
java.lang.Throwable: icons.AwsIcons$Resources <clinit> requests lermitage.intellij.extratci.SettingsService instance. Class initialization must not depend on services. Consider using instance of the service on-demand instead.
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:375)
at com.intellij.serviceContainer.ComponentManagerImplKt.checkOutsideClassInitializer(ComponentManagerImpl.kt:1585)
at com.intellij.serviceContainer.ComponentManagerImplKt.getOrCreateInstanceBlocking(ComponentManagerImpl.kt:1554)
at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:752)
at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:696)
at lermitage.intellij.extratci.SettingsService.getInstance(SourceFile:47)
at lermitage.intellij.extratci.d.a(SourceFile:34)
at lermitage.intellij.extratci.d.a(SourceFile:45)
at lermitage.intellij.extratci.SettingsService.getAllIcons(SourceFile:51)
at lermitage.intellij.extratci.d.a(SourceFile:161)
at lermitage.intellij.extratci.d.patchPath(SourceFile:89)
at com.intellij.ui.icons.IconTransform.applyPatchers(IconTransform.kt:91)
at com.intellij.ui.icons.IconTransform.patchPath(IconTransform.kt:77)
at com.intellij.ui.icons.CachedImageIconKt.patchIconPath(CachedImageIcon.kt:53)
at com.intellij.openapi.util.IconLoaderKt.findIconUsingDeprecatedImplementation(IconLoader.kt:354)
at com.intellij.openapi.util.IconLoaderKt.findIconUsingDeprecatedImplementation$default(IconLoader.kt:346)
at com.intellij.openapi.util.IconLoader.getIcon(IconLoader.kt:113)
at icons.AwsIcons.load(AwsIcons.kt:190)
at icons.AwsIcons.access$load(AwsIcons.kt:14)
at icons.AwsIcons$Resources.<clinit>(AwsIcons.kt:65)
at software.aws.toolkits.jetbrains.services.lambda.execution.LambdaRunConfigurationType.<init>(LambdaRunConfigurationType.kt:19)
at com.intellij.serviceContainer.ComponentManagerImpl.findConstructorAndInstantiateClass(ComponentManagerImpl.kt:909)
at com.intellij.serviceContainer.ComponentManagerImpl.doInstantiateClass(ComponentManagerImpl.kt:918)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:903)
at com.intellij.openapi.extensions.impl.SimpleConstructorInjectionAdapter.instantiateClass(XmlExtensionAdapter.kt:102)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.doCreateInstance(XmlExtensionAdapter.kt:52)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.kt:33)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapter(ExtensionPointImpl.kt:404)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.createExtensionInstances(ExtensionPointImpl.kt:377)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.getExtensionList(ExtensionPointImpl.kt:223)
at com.intellij.openapi.extensions.ExtensionPointName.getExtensionList(ExtensionPointName.kt:54)
at com.intellij.execution.configurations.ConfigurationTypeUtil.findConfigurationType(ConfigurationTypeUtil.kt:12)
at com.microsoft.azure.hdinsight.spark.run.configuration.LivySparkBatchJobRunConfigurationType.getInstance(LivySparkBatchJobRunConfigurationType.java:80)
at com.microsoft.azure.hdinsight.spark.run.LivySparkRunConfigurationProducer.<init>(LivySparkRunConfigurationProducer.kt:29)
at com.intellij.serviceContainer.ComponentManagerImpl.findConstructorAndInstantiateClass(ComponentManagerImpl.kt:909)
at com.intellij.serviceContainer.ComponentManagerImpl.doInstantiateClass(ComponentManagerImpl.kt:918)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:903)
at com.intellij.openapi.extensions.impl.SimpleConstructorInjectionAdapter.instantiateClass(XmlExtensionAdapter.kt:102)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.doCreateInstance(XmlExtensionAdapter.kt:52)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.kt:33)
at com.intellij.openapi.extensions.impl.ExtensionPointImplKt.getOrCreateExtensionInstance(ExtensionPointImpl.kt:1059)
at com.intellij.openapi.extensions.impl.ExtensionPointImplKt.access$getOrCreateExtensionInstance(ExtensionPointImpl.kt:1)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl$iterator$2.advanceToNextNonNull(ExtensionPointImpl.kt:292)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl$iterator$2.hasNext(ExtensionPointImpl.kt:274)
at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe$intellij_platform_extensions(ExtensionProcessingHelper.kt:168)
at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.kt:66)
at pro.bashsupport.b6.L(b6.java:183)
at pro.bashsupport.b6.d(b6.java:157)
at pro.bashsupport.wg.l(wg.java:44)
at pro.bashsupport.wg.invoke(wg.java:44)
at pro.bashsupport.b6.B(b6.java:69)
at pro.bashsupport.b6.o(b6.java:44)
at pro.bashsupport._62.appFrameCreated(_62.java:9)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:768)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:712)
at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:451)
at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:430)
at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:493)
at jdk.proxy2/jdk.proxy2.$Proxy55.appFrameCreated(Unknown Source)
at com.intellij.idea.IdeStarter$openProjectIfNeeded$isOpenProjectNeeded$1$1.invokeSuspend(IdeStarter.kt:130)
at com.intellij.idea.IdeStarter$openProjectIfNeeded$isOpenProjectNeeded$1$1.invoke(IdeStarter.kt)
at com.intellij.idea.IdeStarter$openProjectIfNeeded$isOpenProjectNeeded$1$1.invoke(IdeStarter.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span(tracer.kt:56)
at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span$default(tracer.kt:48)
at com.intellij.idea.IdeStarter$openProjectIfNeeded$isOpenProjectNeeded$1.invokeSuspend(IdeStarter.kt:128)
jansorg
(Joachim Ansorg)
August 1, 2025, 6:28pm
42
Thanks for the link!
Oh my, so in this particular case, BashSupport Pro is searching for RunConfigurationProducer, which initializes the registered extensions. A producer of com.microsoft.azure.hdinsight.spark is searching for a ConfigurationType and a ConfigurationType from software.aws.toolkits is accessing a static Icon, which then triggers the IconPatcher, which uses a service and that causes an LOG.error(…).
I’ll see what I can do to delay this, but I’m not sure yet what’s possible here.
Nonetheless, this will be just a one of many possible stacktraces of other plugins triggering this and the IconPatcher should be made safe, if possible.
What task do you solve by doing that? Can you do that on-demand?
Also, ComponentManagerImpl:checkOutsideClassInitializer could log a warning message. And it could continue to log an error message only in unit/integration tests.
This way, maintained plugin would have time to publish fixes. For unmaintained plugins, especially if the until-build field is ignored in a near future ( ), we would avoid these error reports.
jansorg
(Joachim Ansorg)
August 2, 2025, 10:39am
45
That’s for compatibility with the Shell plugin.
I’ve made changes to avoid eager init of the queried extension points and moved init code, which can be delayed, to a ProjectActivity. This will be part of the next update, which will be out very soon.
1 Like
Thank you so much, this helps
Could you please create a topic for the second problem of ClassCastException? We will take a look and may be make it more helpful for others as well
Sure. I created https://youtrack.jetbrains.com/issue/IDEA-377026/java.lang.ClassCastException-on-service-invocation
1 Like