Vanco / SequencePlugin

SequencePlugin for IntelliJ IDEA
Other
693 stars 198 forks source link

"Cannot create class org.intellij.sequencer.ShowSequenceAction" exception when the Kotlin plugin is disabled #135

Closed ljchen1 closed 2 years ago

ljchen1 commented 2 years ago

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:

  1. Install this plugin and disable the Kotlin plugin.
  2. Restart the IDEA and open a project.

Expected behavior No exception throws.

Screenshots image

Plugin & IDE info:

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