4 (harmless) duplicate PluginExceptions thrown when loading an Intellij project with MobiVM plugin enabled
Issue details
When you load up any project with the plugin enabled, around 4 of the same PluginException (and sometimes another completely different exception is also thrown but not always) is thrown due to the plugin and shown as IDE Internal Errors. Apart from a red exclamation mark in the IntelliJ UI which shows these exceptions, nothing else wrong seems to happen and actually using MobiVM works fine. When you load a different project afterwards without closing IntelliJ, this doesn't reoccur (likely because the plugin is already loaded).
Reproduction steps/code
- Make sure the MobiVM plugin is enabled
- Close and reopen IntelliJ Idea
- Load any project (doesn't have to be one which uses RoboVM)
- Wait for and click the red exclamation mark on the bottom right corner (for Intellij's new UI) to view the exceptions.
Configuration
Build Tools:
- [X] IDEA plugin
- [ ] Eclipse plugin
- [ ] Gradle plugin
Versions:
MacOS: 14.4.1 Apple Silicon
IntelliJ Idea Ultimate 2024.1
- Robovm: plugin version 2.3.20
- XCode: 15.3
- JDK: Eclipse Temurin 17.0.3 aarch64
Build Targets:
Not relevant.
Stacktrace
com.intellij.diagnostic.PluginException: `ActionUpdateThread.OLD_EDT` is deprecated and going to be removed soon. 'org.robovm.idea.actions.GenerateXCodeProjectAction' must override `getActionUpdateThread` and chose EDT or BGT. See ActionUpdateThread javadoc. [Plugin: com.mobidevelop.robovm.intellij]
at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:90)
at com.intellij.diagnostic.PluginException.reportDeprecatedUsage(PluginException.java:125)
at com.intellij.openapi.actionSystem.ActionUpdateThreadAware.getActionUpdateThread(ActionUpdateThreadAware.java:21)
at com.intellij.openapi.actionSystem.AnAction.getActionUpdateThread(AnAction.java:199)
Sometimes this exception shows too but I can't reproduce it consistently.
Cannot create org.robovm.idea.components.RoboVmApplicationComponent
com.intellij.ide.plugins.StartupAbortedException: Fatal error initializing plugin com.mobidevelop.robovm.intellij
at com.intellij.serviceContainer.ComponentManagerImplKt.handleComponentError(ComponentManagerImpl.kt:1455)
at com.intellij.serviceContainer.ComponentInstanceInitializer.createInstance$suspendImpl(ComponentInstanceInitializer.kt:41)
at com.intellij.serviceContainer.ComponentInstanceInitializer.createInstance(ComponentInstanceInitializer.kt)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1$1.invokeSuspend(LazyInstanceHolder.kt:162)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1$1.invoke(LazyInstanceHolder.kt)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1$1.invoke(LazyInstanceHolder.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1.invokeSuspend(LazyInstanceHolder.kt:160)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1.invoke(LazyInstanceHolder.kt)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder$initialize$1.invoke(LazyInstanceHolder.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:44)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.initialize(LazyInstanceHolder.kt:145)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.access$initialize(LazyInstanceHolder.kt:13)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.tryInitialize(LazyInstanceHolder.kt:135)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.getInstance(LazyInstanceHolder.kt:95)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.getInstanceInCallerContext$suspendImpl(LazyInstanceHolder.kt:87)
at com.intellij.platform.instanceContainer.internal.LazyInstanceHolder.getInstanceInCallerContext(LazyInstanceHolder.kt)
at com.intellij.platform.instanceContainer.internal.UtilKt.preloadAllInstances(util.kt:47)
at com.intellij.serviceContainer.ComponentManagerImpl$createInitOldComponentsTask$1.invokeSuspend(ComponentManagerImpl.kt:486)
at com.intellij.serviceContainer.ComponentManagerImpl$createInitOldComponentsTask$1.invoke(ComponentManagerImpl.kt)
at com.intellij.serviceContainer.ComponentManagerImpl$createInitOldComponentsTask$1.invoke(ComponentManagerImpl.kt)
at com.intellij.platform.ide.bootstrap.AppServicePreloadingKt$postAppRegistered$3$1.invokeSuspend(appServicePreloading.kt:145)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:792)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:761)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: com.intellij.diagnostic.PluginException: Lock and IDE Queue are not ready yet [Plugin: com.mobidevelop.robovm.intellij]
... 43 more
Caused by: java.lang.IllegalStateException: Lock and IDE Queue are not ready yet
at com.intellij.openapi.application.impl.RwLockHolder.notReady(RwLockHolder.kt:62)
at com.intellij.openapi.application.impl.RwLockHolder.startWrite(RwLockHolder.kt:502)
at com.intellij.openapi.application.impl.RwLockHolder.runWriteAction(RwLockHolder.kt:342)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:883)
at org.robovm.idea.sdk.RoboVmSdkType.createSdkIfNotExists(RoboVmSdkType.java:135)
at org.robovm.idea.RoboVmPlugin.extractSdk(RoboVmPlugin.java:303)
at org.robovm.idea.components.RoboVmApplicationComponent.initComponent(RoboVmApplicationComponent.java:48)
at com.intellij.serviceContainer.ComponentInstanceInitializer.createInstance$suspendImpl(ComponentInstanceInitializer.kt:27)
... 41 more
hi, thank you for reporting. first issue was fixed in v2.3.21
second is going be fixed once we remove legacy code from Idea plugin
all these were addressed in https://github.com/MobiVM/robovm/pull/808