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

RuntimeException in IntelliJ 2023.1 #427

Open cjacobme opened 1 year ago

cjacobme commented 1 year ago

Describe the bug After updating to IntelliJ 2023.1 a RuntimeException is thrown. This is the stack trace:

java.lang.RuntimeException: Cannot invoke (class=FrameStateManagerAppListener, method=applicationDeactivated, topic=ApplicationActivationListener)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:657)
    at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:415)
    at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:394)
    at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
    at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:454)
    at jdk.proxy2/jdk.proxy2.$Proxy55.applicationDeactivated(Unknown Source)
    at com.intellij.ide.ApplicationActivationStateManager.updateState(ApplicationActivationStateManager.java:58)
    at com.intellij.ide.IdeEventQueueKt.processAppActivationEvent(IdeEventQueue.kt:1033)
    at com.intellij.ide.IdeEventQueueKt.access$processAppActivationEvent(IdeEventQueue.kt:1)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:554)
    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.SentEvent.dispatch(SentEvent.java:75)
    at java.desktop/java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent.dispatch(DefaultKeyboardFocusManager.java:262)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocusManager.java:289)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:833)
    at com.intellij.ide.IdeKeyboardFocusManager.access$dispatchEvent$s1569605750(IdeKeyboardFocusManager.kt:18)
    at com.intellij.ide.IdeKeyboardFocusManager$dispatchEvent$1.invoke(IdeKeyboardFocusManager.kt:25)
    at com.intellij.ide.IdeKeyboardFocusManager$dispatchEvent$1.invoke(IdeKeyboardFocusManager.kt:25)
    at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994)
    at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.kt:25)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4903)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2804)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
    at java.desktop/sun.awt.SunToolkit$1.run(SunToolkit.java:516)
    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.RuntimeException: Cannot invoke (class=, method=applicationDeactivated, topic=ApplicationActivationListener)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:657)
    at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:415)
    at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:384)
    at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
    at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:454)
    at jdk.proxy2/jdk.proxy2.$Proxy56.onFrameDeactivated(Unknown Source)
    at com.intellij.ide.FrameStateManagerAppListener.applicationDeactivated(FrameStateManagerAppListener.java:56)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:680)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:640)
    ... 66 more
Caused by: java.lang.RuntimeException: Cannot invoke (class=SaveActionManager, method=beforeAllDocumentsSaving, topic=FileDocumentManagerListener)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:657)
    at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:482)
    at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:263)
    at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:442)
    at jdk.proxy2/jdk.proxy2.$Proxy23.beforeAllDocumentsSaving(Unknown Source)
    at jdk.internal.reflect.GeneratedMethodAccessor238.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.multiCast(FileDocumentManagerImpl.java:172)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$new$0(FileDocumentManagerImpl.java:127)
    at jdk.proxy2/jdk.proxy2.$Proxy23.beforeAllDocumentsSaving(Unknown Source)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveDocuments(FileDocumentManagerImpl.java:278)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:266)
    at com.intellij.configurationStore.SaveAndSyncHandlerImpl$listenIdleAndActivate$2.applicationDeactivated(SaveAndSyncHandlerImpl.kt:174)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:680)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:640)
    ... 74 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.model.StorageFactory.lambda$static$0(StorageFactory.java:36)
    at com.dubreuia.model.StorageFactory.getStorage(StorageFactory.java:50)
    at com.dubreuia.model.StorageFactory.lambda$static$1(StorageFactory.java:39)
    at com.dubreuia.model.StorageFactory.getStorage(StorageFactory.java:50)
    at com.dubreuia.core.component.SaveActionManager.getStorage(SaveActionManager.java:130)
    at com.dubreuia.core.component.SaveActionManager.guardedProcessPsiFiles(SaveActionManager.java:168)
    at com.dubreuia.core.component.SaveActionManager.lambda$beforeDocumentsSaving$3(SaveActionManager.java:153)
    at java.base/java.util.HashMap.forEach(HashMap.java:1421)
    at com.dubreuia.core.component.SaveActionManager.beforeDocumentsSaving(SaveActionManager.java:152)
    at com.dubreuia.core.component.SaveActionManager.beforeAllDocumentsSaving(SaveActionManager.java:137)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:677)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:640)
    at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:482)
    at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:263)
    at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:442)
    at jdk.proxy2/jdk.proxy2.$Proxy23.beforeAllDocumentsSaving(Unknown Source)
    at jdk.internal.reflect.GeneratedMethodAccessor238.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.multiCast(FileDocumentManagerImpl.java:172)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$new$0(FileDocumentManagerImpl.java:127)
    at jdk.proxy2/jdk.proxy2.$Proxy23.beforeAllDocumentsSaving(Unknown Source)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveDocuments(FileDocumentManagerImpl.java:278)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:266)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:259)
    at com.intellij.compiler.impl.CompileDriver.startup(CompileDriver.java:414)
    at com.intellij.compiler.impl.CompileDriver.make(CompileDriver.java:96)
    at com.intellij.compiler.impl.CompileDriver.make(CompileDriver.java:92)
    at com.intellij.compiler.CompilerManagerImpl.make(CompilerManagerImpl.java:309)
    at com.intellij.task.impl.JpsProjectTaskRunner.runModulesBuildTasks(JpsProjectTaskRunner.java:129)
    at com.intellij.task.impl.JpsProjectTaskRunner.lambda$run$2(JpsProjectTaskRunner.java:78)
    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)
    ... 29 more

Versions IntelliJ IDEA 2023.1 (Ultimate Edition) Build #IU-231.8109.175, built on March 28, 2023 Licensed to E.ON Digital Technology GmbH / Christian Jacob Subscription is active until December 31, 2023. Runtime version: 17.0.6+10-b829.5 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 10.0 GC: G1 Young Generation, G1 Old Generation Memory: 2048M Cores: 12 Non-Bundled Plugins: com.intellij.properties.bundle.editor (231.8109.91) com.dubreuia (2.3.0) DBN (3.3.7221.0) MavenRunHelper (4.23.222.2964.0) com.intellij.aspectj (231.8109.90) org.sonarlint.idea (8.1.0.65508) net.seesharpsoft.intellij.plugins.csv (3.1.0-231) com.haulmont.jpab (2023.1.3-231) io.nimbly.tzatziki (15.2.1)

Kotlin: 231-1.8.20-IJ8109.175

cmunger commented 1 year ago

same problems here i think it's a general issue

sewah2012 commented 1 year ago

I have similar issue ...

mdcarreira commented 1 year ago

I have this problem as well. Although I don't think we will be getting a fix.

Last commit was on Dec 2021 and on readme it is stated that: This project has been archived and is looking for a maintainer

goldcrestwilma commented 1 year ago

I had exactly the same situation with IntelliJ version 2023.1.

alexandernajafi commented 1 year ago

Do you really need this plugin? "actions on save" are now available in Intellij without the need of a plugin right?

M3yo commented 1 year ago

@alexandernajafi AKAIK "actions on save" available in Intellij doesn't work with Eclipse Code Formater plugin whereas this plugin does work fine.

fishermans commented 1 year ago

Should be working now: https://github.com/fishermans/intellij-plugin-save-actions/releases/tag/v2.6.0

dalainwork commented 1 year ago

when will this new version 2.6.0 be available in IDEA plugin market? I still only see 2.3.0 version in intellj-ultimate version image

freeunion1possible commented 1 year ago

when will this new version 2.6.0 be available in IDEA plugin market? I still only see 2.3.0 version in intellj-ultimate version image

download the package for version 2.6, and install plugin from disk

t0r0X commented 1 year ago

when will this new version 2.6.0 be available in IDEA plugin market? I still only see 2.3.0 version in intellj-ultimate version

As previous commenter answered already, 2.6.0 is from a fork of this project. This project is currently inactive, see the README.md note: "⚠️ This project has been archived and is looking for a maintainer ⚠️"

davidsedlar commented 1 year ago

download the package for version 2.6, and install plugin from disk

Thanks. It works.

aorigami commented 1 year ago

现在应该可以工作了:https ://github.com/fishermans/intellij-plugin-save-actions/releases/tag/v2.6.0

Thanks.

rooby commented 1 year ago

@fishermans do you intend to try to take over the original project (or have you already tried to contact the author about it) so it can be updated in the IDEA market, or just update your fork and people will install it manually?

aggaadfr commented 1 year ago

Should be working now: https://github.com/fishermans/intellij-plugin-save-actions/releases/tag/v2.6.0 Thanks.

CRogers commented 1 year ago

Note that since IntelliJ 2021.2, there is a built-in Tools > Actions on Save settings menu that allows you do a lot of standard actions, like reformatting or optimising imports: Screenshot 2023-04-06 at 17 23 10

fishermans commented 1 year ago

@fishermans do you intend to try to take over the original project (or have you already tried to contact the author about it) so it can be updated in the IDEA market, or just update your fork and people will install it manually?

See comments to this question here: https://github.com/dubreuia/intellij-plugin-save-actions/issues/428

rooby commented 1 year ago

@CRogers There is a downside to that currently, which is that the configuration for Actions on Save is stored in .idea/workspace.xml, which is something that is not advisable to commit to a code repository. With Save Actions you could easily have the config saved in the repo so everyone using the repo have the same config automatically. Hopefully JetBrains will move that config. See https://youtrack.jetbrains.com/issue/IDEA-276784

dbouclier commented 1 year ago

Note that since IntelliJ 2021.2, there is a built-in Tools > Actions on Save settings menu that allows you do a lot of standard actions, like reformatting or optimising imports: Screenshot 2023-04-06 at 17 23 10

@CRogers yes but how do have the same "automatic quick fix" specific to java ?

see below

image

AB-xdev commented 1 year ago

So since no one managed to release a fork on the marketplace, we did it ourselfs so that we don't always have to use a ZIP file. Feel free to use it if you like.

We also notice that someone else published a similar version, however we didn't want to use that since:

dbouclier commented 1 year ago

@AB-xdev great to see someone taking over this, did you contact the original author to replace the package in the marketplace ?

AB-xdev commented 1 year ago

@AB-xdev great to see someone taking over this, did you contact the original author to replace the package in the marketplace ?

Currently we have no intention to do this. Background: https://github.com/dubreuia/intellij-plugin-save-actions/issues/428#issuecomment-1488881866