Describe the bug
When disabling the Kotlin plugin and using this plugin, the IDE will throw an exception.
It seems the some code path from org.intellij.sequencer.ShowSequenceAction depends on the Kotlin module and uses it directly without checking as this plugin declares the Kotlin module as an optional.
To Reproduce
Steps to reproduce the behavior:
Install this plugin and disable the Kotlin plugin.
Restart the IDEA and open a project.
Expected behavior
No exception throws.
Screenshots
Plugin & IDE info:
Plugin Version: 2.2.2
IDE Name & Version: IDEA 2022.2.2
Exception:
com.intellij.diagnostic.PluginException: Cannot create class org.intellij.sequencer.ShowSequenceAction (classloader=PluginClassLoader(plugin=PluginDescriptor(name=SequenceDiagram, id=SequenceDiagram, descriptorPath=plugin.xml, path=~/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-3/222.4167.29.plugins/SequenceDiagram, version=2.2.2, package=null, isBundled=false), packagePrefix=null, instanceId=172, state=active))
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:883)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:900)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.instantiate(ActionManagerImpl.java:202)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertStub(ActionManagerImpl.java:187)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getActionImpl(ActionManagerImpl.java:528)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getAction(ActionManagerImpl.java:517)
at com.intellij.openapi.actionSystem.DefaultActionGroup.unStub(DefaultActionGroup.java:409)
at com.intellij.openapi.actionSystem.DefaultActionGroup.getChildren(DefaultActionGroup.java:365)
at com.intellij.openapi.actionSystem.ActionGroupStub.initGroup(ActionGroupStub.kt:34)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertGroupStub(ActionManagerImpl.java:241)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getActionImpl(ActionManagerImpl.java:528)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getAction(ActionManagerImpl.java:517)
at com.intellij.openapi.actionSystem.DefaultActionGroup.unStub(DefaultActionGroup.java:409)
at com.intellij.openapi.actionSystem.DefaultActionGroup.getChildren(DefaultActionGroup.java:365)
at com.intellij.openapi.actionSystem.DefaultActionGroup.getChildren(DefaultActionGroup.java:343)
at com.intellij.ide.ui.customization.CustomizationUtil.getReordableChildren(CustomizationUtil.java:92)
at com.intellij.ide.ui.customization.CustomisedActionGroup.getChildren(CustomisedActionGroup.java:44)
at com.intellij.openapi.wm.impl.IdeMenuBar.expandActionGroup(IdeMenuBar.java:509)
at com.intellij.openapi.wm.impl.IdeMenuBar.doUpdateMenuActions(IdeMenuBar.java:406)
at com.intellij.openapi.wm.impl.IdeMenuBar.lambda$addNotify$4(IdeMenuBar.java:286)
at com.intellij.openapi.actionSystem.ex.ActionManagerEx.lambda$doWithLazyActionManager$0(ActionManagerEx.java:111)
at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:194)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:513)
at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:75)
at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:118)
at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
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:749)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:918)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:766)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:450)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:449)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:624)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:447)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:493)
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: java.lang.IllegalAccessException: no such constructor: org.intellij.sequencer.ShowSequenceAction.<init>()void/newInvokeSpecial
at java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:972)
at java.base/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1117)
at java.base/java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:3649)
at java.base/java.lang.invoke.MethodHandles$Lookup.findConstructor(MethodHandles.java:2750)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:844)
... 49 more
Caused by: java.lang.NoClassDefFoundError: org/jetbrains/kotlin/idea/KotlinLanguage
at java.base/java.lang.invoke.MethodHandleNatives.resolve(Native Method)
at java.base/java.lang.invoke.MemberName$Factory.resolve(MemberName.java:1085)
at java.base/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1114)
... 52 more
Caused by: java.lang.ClassNotFoundException: org.jetbrains.kotlin.idea.KotlinLanguage PluginClassLoader(plugin=PluginDescriptor(name=SequenceDiagram, id=SequenceDiagram, descriptorPath=plugin.xml, path=~/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-3/222.4167.29.plugins/SequenceDiagram, version=2.2.2, package=null, isBundled=false), packagePrefix=null, instanceId=172, state=active)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:214)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 55 more
Describe the bug When disabling the Kotlin plugin and using this plugin, the IDE will throw an exception. It seems the some code path from
org.intellij.sequencer.ShowSequenceAction
depends on the Kotlin module and uses it directly without checking as this plugin declares the Kotlin module as an optional.To Reproduce Steps to reproduce the behavior:
Expected behavior No exception throws.
Screenshots
Plugin & IDE info:
Exception: