dubreuia / intellij-plugin-save-actions

Supports configurable, Eclipse like, save actions, including "organize imports", "reformat code" and "rearrange code".
MIT License
529 stars 102 forks source link

Cannot create configurable error on fresh plugin install #428

Closed charberg closed 1 year ago

charberg commented 1 year ago

Describe the bug Configuration options are not created for the plugin after installing. I cannot configure the plugin, as it loads endlessly. An IDE Internal Error is thrown.

image
Cannot create configurable

com.intellij.diagnostic.PluginException: Cannot create class com.dubreuia.ui.Configuration (classloader=PluginClassLoader(plugin=PluginDescriptor(name=Save Actions, id=com.dubreuia, descriptorPath=plugin.xml, path=~/Library/Application Support/JetBrains/IntelliJIdea2023.1/plugins/intellij-plugin-save-actions-2.3.0.jar, version=2.3.0, package=null, isBundled=false), packagePrefix=null, instanceId=88, state=active))
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:1034)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:1051)
    at com.intellij.openapi.options.ConfigurableEP$ClassProducer.createElement(ConfigurableEP.java:438)
    at com.intellij.openapi.options.ConfigurableEP.createConfigurable(ConfigurableEP.java:344)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.createConfigurable(ConfigurableWrapper.java:43)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:124)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:99)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.getDisplayName(ConfigurableWrapper.java:145)
    at com.intellij.openapi.options.newEditor.SettingsTreeView$MyNode.<init>(SettingsTreeView.java:533)
    at com.intellij.openapi.options.newEditor.SettingsTreeView$MyRoot.buildChildren(SettingsTreeView.java:514)
    at com.intellij.ui.treeStructure.CachingSimpleNode.getChildren(CachingSimpleNode.java:26)
    at com.intellij.ui.treeStructure.SimpleTreeStructure.getChildElements(SimpleTreeStructure.java:12)
    at com.intellij.ui.treeStructure.filtered.FilteringTreeStructure.addToCache(FilteringTreeStructure.java:67)
    at com.intellij.ui.treeStructure.filtered.FilteringTreeStructure.rebuild(FilteringTreeStructure.java:62)
    at com.intellij.ui.treeStructure.filtered.FilteringTreeStructure.<init>(FilteringTreeStructure.java:54)
    at com.intellij.ui.treeStructure.filtered.FilteringTreeStructure.<init>(FilteringTreeStructure.java:45)
    at com.intellij.ui.tree.FilteringTreeModel.createModel(FilteringTreeModel.java:26)
    at com.intellij.openapi.options.newEditor.SettingsTreeView.<init>(SettingsTreeView.java:198)
    at com.intellij.openapi.options.newEditor.SettingsDialog.treeViewFactory(SettingsDialog.java:89)
    at com.intellij.openapi.options.newEditor.SettingsEditor.<init>(SettingsEditor.java:194)
    at com.intellij.openapi.options.newEditor.SettingsDialog.<init>(SettingsDialog.java:65)
    at com.intellij.openapi.options.newEditor.SettingsDialogFactory.create(SettingsDialogFactory.java:38)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.getDialog(ShowSettingsUtilImpl.java:39)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:90)
    at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:60)
    at com.intellij.ui.mac.MacOSApplicationProvider$Worker.initMacApplication$lambda$2$lambda$1(MacOSApplicationProvider.kt:71)
    at com.intellij.ui.mac.MacOSApplicationProvider$Worker.submit$lambda$6(MacOSApplicationProvider.kt:170)
    at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
    at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
    at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
    at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:456)
    at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
    at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:122)
    at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:41)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788)
    at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
    at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
    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:758)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666)
    at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$7(IdeEventQueue.kt:570)
    at com.intellij.openapi.application.impl.ApplicationImpl.withoutImplicitRead(ApplicationImpl.java:1446)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:570)
    at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
    at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994)
    at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
    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.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:1007)
    ... 63 more
Caused by: com.intellij.diagnostic.PluginException: The specified parameters not match any of the following constructors: public com.dubreuia.model.Storage()
public com.dubreuia.model.Storage(com.dubreuia.model.Storage)
for class com.dubreuia.model.Storage [Plugin: com.dubreuia]
    at com.intellij.serviceContainer.ConstructorInjectionKt.getGreediestSatisfiableConstructor(constructorInjection.kt:219)
    at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:39)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:1041)
    at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:43)
    at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:39)
    at com.intellij.serviceContainer.BaseComponentAdapter.doCreateInstance(BaseComponentAdapter.kt:154)
    at com.intellij.serviceContainer.BaseComponentAdapter.createInstance$lambda$1(BaseComponentAdapter.kt:133)
    at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:99)
    at com.intellij.serviceContainer.BaseComponentAdapter.createInstance(BaseComponentAdapter.kt:132)
    at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:92)
    at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:714)
    at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:670)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:27)
    at com.dubreuia.ui.Configuration.<init>(Configuration.java:90)
    ... 69 more

What triggered the plugin Fresh plugin install from IntelliJ plugin marketplace

Versions IntelliJ IDEA 2023.1 (Ultimate Edition) Build #IU-231.8109.175, built on March 28, 2023 Licensed to Solace Systems

Runtime version: 17.0.6+10-b829.5 aarch64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. macOS 13.3 GC: G1 Young Generation, G1 Old Generation Memory: 2048M Cores: 12 Metal Rendering is ON Non-Bundled Plugins: com.dubreuia (2.3.0) CheckStyle-IDEA (5.77.0)

Kotlin: 231-1.8.20-IJ8109.175

fishermans commented 1 year ago

See #427

charberg commented 1 year ago

Thank you @fishermans - Do you know roughly how long until the fix lands on the version I'd download from Marketplace? I'm still seeing this behaviour when re-installing.

fishermans commented 1 year ago

Probably never. The author does not get in touch and does not use Intellij anymore.

charberg commented 1 year ago

Ah gotcha. Just downloaded the latest fix and installed manually then. Closing the issue, thank you!

Mujuthejuju commented 1 year ago

@fishermans: would you consider in the future creating a new plugin on the marketplace yourself, based on this code? I am not sure how the IntelliJ marketplace works and if you're even allowed to, sorry if it's a stupid question.

fishermans commented 1 year ago

@fishermans: would you consider in the future creating a new plugin on the marketplace yourself, based on this code? I am not sure how the IntelliJ marketplace works and if you're even allowed to, sorry if it's a stupid question.

Actually not planned. I will keep it up-to-date for myself and check it in into my GitHub fork repo but don't have time to maintain a plugin on the Marketplace. I have to fix those issues during my work and I only use Idea, no PyCharm aso..

The author already asked me to do it. Hence, keeping it running on the marketplace would be possible, I guess.

Mujuthejuju commented 1 year ago

I see, thank you very much for your answer and your work on keeping this functional!