mplushnikov / lombok-intellij-plugin

Lombok Plugin for IntelliJ IDEA
Apache License 2.0
3.11k stars 635 forks source link

Incompatible with Intellij 2020.2 #840

Closed clemstoquart closed 4 years ago

clemstoquart commented 4 years ago

Short description

Looks like lombok plugin is incompatible with Intellij 2020.2.

Expected behavior

Lombok plugin should work with Intellij 2020.2.

Version information

bhoogter commented 4 years ago

Error from IntelliJ:

11:16 AM Plugin Error: Plugin "Lombok" is incompatible (until build 201.SNAPSHOT < IU-202.6397.94).

romanthekat commented 4 years ago

There is 0.30 EAP release which should be working under 2020.2, so we shall wait for it become published for non-EAP :)

zadam commented 4 years ago

It's the same issue as during the 2020.1 release - you need to uninstall the plugin, restart Idea, install lombok plugin 0.30 EAP and it works again.

romanthekat commented 4 years ago

It's the same issue as during the 2020.1 release - you need to uninstall the plugin, restart Idea, install lombok plugin 0.30 EAP and it works again.

@zadam indeed, this bug happened again - thanks a lot!

p.s. but yeah, as mentioned later - it will have runtime problems

sneakythr0ws commented 4 years ago

There is 0.30 EAP release which should be working under 2020.2, so we shall wait for it become published for non-EAP :)

It doesn't work on EAP( https://github.com/mplushnikov/lombok-intellij-plugin/issues/821

Heatmanofurioso commented 4 years ago

There is 0.30 EAP release which should be working under 2020.2, so we shall wait for it become published for non-EAP :)

It doesn't work on EAP( #821

You were using the EAP of IJ 2020.2 Did you also try with the release?

toddlindner commented 4 years ago

Same issue with IJ 2020.2 release. Not EAP

vkadam commented 4 years ago

Worked for me w/o needing to uninstall/install, I am able to see 0.30-EAP in plugin list

Heatmanofurioso commented 4 years ago

How do I add the EAP plugin version to install?

alamer commented 4 years ago

@Heatmanofurioso just uninstall current plugin, then restart. And install again. Worked for me with IJ 2020.2 release

jtonic commented 4 years ago

@Heatmanofurioso just uninstall current plugin, then restart. And install again. Worked for me with IJ 2020.2 release

It doesn't work properly with IntelliJ Idea 2020.2. I've installed the latest version of lombok plugin 0.30 EAP and when try to autocomplete a lombok annotation I've got the following IDE internal error.

com.intellij.diagnostic.PluginException: Element: class de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder #JAVA because: psi is outdated invalidated at: no info [Plugin: Lombook Plugin]

image

jtonic commented 4 years ago

@Heatmanofurioso just uninstall current plugin, then restart. And install again. Worked for me with IJ 2020.2 release

It doesn't work properly with IntelliJ Idea 2020.2. I've installed the latest version of lombok plugin 0.30 EAP and when try to autocomplete a lombok annotation I've got the following IDE internal error.

com.intellij.diagnostic.PluginException: Element: class de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder #JAVA because: psi is outdated invalidated at: no info [Plugin: Lombook Plugin]

image

And in fact there are a lot of other issues in IntelliJ regarding the lombok-ized classes. The same error (as above) occurs when trying to see the constructor parameters at the call site. Definitely we need to wait for non EAP version of the plugin

TheBestPessimist commented 4 years ago

Please see: https://github.com/mplushnikov/lombok-intellij-plugin/issues/829#issuecomment-660442053

Ryaryu commented 4 years ago

I've fixed this for myself, cloning the project, changing the ideaVersion= to 2020.2 in gradle.properties and building, then installing this new plugin.

rupert-madden-abbott commented 4 years ago

It's the same issue as during the 2020.1 release - you need to uninstall the plugin, restart Idea, install lombok plugin 0.30 EAP and it works again.

This didn't work for me.

I've fixed this for myself, cloning the project, changing the ideaVersion= to 2020.2 in gradle.properties and building, then installing this new plugin.

Update This worked for a little bit and then broke again. There are actual issues with the plugin and compatibility with 2020.2. Actual solution is to revert back to 2020.1 until the plugin is updated.

Previous

This did work.

First I uninstalled the version of the plugin installed from the marketplace and restarted IntelliJ.

Then, after editing gradle.properties, to build just run ./gradlew build in the root directory. Took 3m 40s to build on my machine.

To install, open Plugins screen in IntelliJ and click the cog wheel in the menu bar, then "Install Plugin from disk". You can find the built plugin jar under build/libs.

astubbs commented 4 years ago

That got it working - ok, but are there actually any issues with the plugin? I assume it was set to that version because it hasn't been tested on the new version yet. Let us know if you run into any issues using it with the ~forced upgrade?

Nosbielc commented 4 years ago

worked for me, thanks

note: 0.30-EAP

Ryaryu commented 4 years ago

That got it working - ok, but are there actually any issues with the plugin? I assume it was set to that version because it hasn't been tested on the new version yet. Let us know if you run into any issues using it with the ~forced upgrade?

As @rupert-madden-abbott updated response states, the plugin still crashes after some time, I've noticed this too. At least the IDE can recognize the generated methods with the forced upgrade. The safe bet for now is to wait for the real fix while using 2020.1.

pstephenmurphy commented 4 years ago

When can we expect a release that works with:

IntelliJ IDEA 2020.2 (Ultimate Edition) Build #IU-202.6397.94, built on July 27, 2020

0.30-EAP does not.

Screen Shot 2020-07-29 at 11 09 35 AM

ajchun commented 4 years ago

i've never worked with IntelliJ plugins, but i think the issue is here.

basically, the plugin system will intern the psi elements based on the equality.

because this doesn't take into account the navigationElement, the two instances with different navigationElements will be equal and it'll use the previous version. unfortunately, the previous version's navigationElement isn't valid, so it fails.

if you update the equality check from: return Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText); to something like (this is me just hacking something to see if it works, clearly the author will know a better check): return isValid() == that.isValid() && Objects.equals(getNavigationElement(), that.getNavigationElement()) && Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);

it won't de-dupe the two LombokLightMethodBuilder.

here's the patch:

Index: src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java   (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java   (date 1596080717644)
@@ -287,7 +287,8 @@
     if (!getParameterList().equals(that.getParameterList())) {
       return false;
     }
-    return Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
+
+    return isValid() == that.isValid() && Objects.equals(getNavigationElement(), that.getNavigationElement()) && Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
   }

   @Override
Index: gradle.properties
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- gradle.properties   (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ gradle.properties   (date 1596080940034)
@@ -4,11 +4,11 @@
 #
 #ideaVersion=2020.1
 #ideaVersion=2020.1.2
-ideaVersion=LATEST-EAP-SNAPSHOT
+ideaVersion=2020.2
 #
 pluginGroup=de.plushnikov.intellij.plugin
 pluginName=lombok-plugin
-pluginVersion=0.30
+pluginVersion=0.30-patch
 #
 javaVersion=1.8
 sources=true

i uploaded a jar here:

Removed Link. This doesn't fix the issue.

theexiile1305 commented 4 years ago

Same problem on my project. Version information IDEA Version: IntelliJ IDEA 2020.2 (Ultimate Edition) Build #IU-202.6397.94, built on July 27, 2020 JDK Version: OpenJDK Runtime Environment AdoptOpenJDK (build 14.0.1+7) OS Type & Version: macOS 10.15.6 Lombok Plugin Version: 0.30 EPA Lombok Dependency Version**: Latest on Spring boot 2.3.1

jtonic commented 4 years ago

i've never worked with IntelliJ plugins, but i think the issue is here.

basically, the plugin system will intern the psi elements based on the equality.

because this doesn't take into account the navigationElement, the two instances with different navigationElements will be equal and it'll use the previous version. unfortunately, the previous version's navigationElement isn't valid, so it fails.

if you update the equality check from: return Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText); to something like (this is me just hacking something to see if it works, clearly the author will know a better check): return isValid() == that.isValid() && Objects.equals(getNavigationElement(), that.getNavigationElement()) && Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);

it won't de-dupe the two LombokLightMethodBuilder.

here's the patch:

Index: src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java (date 1596080717644)
@@ -287,7 +287,8 @@
     if (!getParameterList().equals(that.getParameterList())) {
       return false;
     }
-    return Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
+
+    return isValid() == that.isValid() && Objects.equals(getNavigationElement(), that.getNavigationElement()) && Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
   }

   @Override
Index: gradle.properties
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- gradle.properties (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ gradle.properties (date 1596080940034)
@@ -4,11 +4,11 @@
 #
 #ideaVersion=2020.1
 #ideaVersion=2020.1.2
-ideaVersion=LATEST-EAP-SNAPSHOT
+ideaVersion=2020.2
 #
 pluginGroup=de.plushnikov.intellij.plugin
 pluginName=lombok-plugin
-pluginVersion=0.30
+pluginVersion=0.30-patch
 #
 javaVersion=1.8
 sources=true

i uploaded a jar here:

Wow!!!

This is a good contribution. I've installed the patch from file and all the observed issues simply disappeared. Also no further IDE fatal errors shown by the Idea.

I'm looking forward to see this PR merged and released via market place.

Marek00Malik commented 4 years ago

Any updates on this? It causes the IDEA to be super unhealthy.

pstephenmurphy commented 4 years ago

The above patch does not fix my problem.

Screen Shot 2020-07-29 at 11 09 35 AM

That field in red is decorated with the @Singular annotation.

2020-07-30 09:43:43,838 [ 302652] ERROR - aemon.impl.PassExecutorService - IntelliJ IDEA 2020.2 Build #IU-202.6397.94 2020-07-30 09:43:43,838 [ 302652] ERROR - aemon.impl.PassExecutorService - JDK: 11.0.7; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o. 2020-07-30 09:43:43,838 [ 302652] ERROR - aemon.impl.PassExecutorService - OS: Mac OS X 2020-07-30 09:43:43,839 [ 302653] ERROR - aemon.impl.PassExecutorService - Plugin to blame: Lombok version: 0.30-patch-2020.2 2020-07-30 09:43:43,839 [ 302653] ERROR - aemon.impl.PassExecutorService - Last Action: GotoDeclaration 2020-07-30 09:43:48,563 [ 307377] ERROR - aemon.impl.PassExecutorService - Element: class de.plushnikov.intellij.plugin.psi.LombokLightClassBuilder #JAVA because: different providers: com.intellij.psi.DummyHolderViewProvider{vFile=LightVirtualFile: /DummyHolder, content=com.intellij.psi.AbstractFileViewProvider$PsiFileContent@79276a02, eventSystemEnabled=false}(4df01706); com.intellij.psi.SingleRootFileViewProvider{vFile=LightVirtualFile: /DummyHolder, content=VirtualFileContent{size=0}, eventSystemEnabled=true}(65201a44) invalidated at: no info [Plugin: Lombook Plugin] com.intellij.diagnostic.PluginException: Element: class de.plushnikov.intellij.plugin.psi.LombokLightClassBuilder #JAVA because: different providers: com.intellij.psi.DummyHolderViewProvider{vFile=LightVirtualFile: /DummyHolder, content=com.intellij.psi.AbstractFileViewProvider$PsiFileContent@79276a02, eventSystemEnabled=false}(4df01706); com.intellij.psi.SingleRootFileViewProvider{vFile=LightVirtualFile: /DummyHolder, content=VirtualFileContent{size=0}, eventSystemEnabled=true}(65201a44) invalidated at: no info [Plugin: Lombook Plugin] at com.intellij.ide.plugins.PluginManagerCore.createPluginException(PluginManagerCore.java:290) at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:12) at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:67) at com.intellij.psi.util.PsiUtilCore.ensureValid(PsiUtilCore.java:478) at com.intellij.psi.impl.PsiClassImplUtil.lambda$createMembersMap$4(PsiClassImplUtil.java:346) at com.intellij.util.containers.ConcurrentFactoryMap$2.create(ConcurrentFactoryMap.java:174) at com.intellij.util.containers.ConcurrentFactoryMap.get(ConcurrentFactoryMap.java:40) at com.intellij.psi.impl.PsiClassImplUtil$MembersMap.get(PsiClassImplUtil.java:326) at com.intellij.psi.impl.PsiClassImplUtil$MembersMap.access$000(PsiClassImplUtil.java:318) at com.intellij.psi.impl.PsiClassImplUtil.processCachedMembersByName(PsiClassImplUtil.java:498) at com.intellij.psi.impl.PsiClassImplUtil.processDeclarationsInClass(PsiClassImplUtil.java:412) at com.intellij.psi.impl.PsiClassImplUtil.processDeclarationsInClass(PsiClassImplUtil.java:389) at com.intellij.psi.impl.source.PsiClassImpl.processDeclarations(PsiClassImpl.java:474) at com.intellij.psi.scope.util.PsiScopesUtil.treeWalkUp(PsiScopesUtil.java:75) at com.intellij.psi.scope.util.PsiScopesUtil.treeWalkUp(PsiScopesUtil.java:54) at com.intellij.psi.scope.util.PsiScopesUtil.resolveAndWalk(PsiScopesUtil.java:221) at com.intellij.psi.scope.util.PsiScopesUtil.resolveAndWalk(PsiScopesUtil.java:150) at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.resolve(PsiJavaCodeReferenceElementImpl.java:489) at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.access$100(PsiJavaCodeReferenceElementImpl.java:44) at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:375) at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:368) at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:185) at com.intellij.openapi.util.Computable.get(Computable.java:17) at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:227) at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:112) at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71) at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:204) at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:185) at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:802) at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:794) at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.multiResolve(PsiJavaCodeReferenceElementImpl.java:423) at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.advancedResolve(PsiJavaCodeReferenceElementImpl.java:417) at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.resolve(PsiJavaCodeReferenceElementImpl.java:352) at com.intellij.psi.impl.source.tree.JavaTreeCopyHandler.decodeInformation(JavaTreeCopyHandler.java:44) at com.intellij.psi.impl.source.tree.ChangeUtil.lambda$decodeInformation$2(ChangeUtil.java:70) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812) at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127) at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543) at com.intellij.psi.impl.source.tree.ChangeUtil.decodeInformation(ChangeUtil.java:71) at com.intellij.psi.impl.source.tree.ChangeUtil.decodeInformation(ChangeUtil.java:65) at com.intellij.psi.impl.source.tree.ChangeUtil.decodeInformation(ChangeUtil.java:65) at com.intellij.psi.impl.source.tree.ChangeUtil.decodeInformation(ChangeUtil.java:65) at com.intellij.psi.impl.source.tree.ChangeUtil.decodeInformation(ChangeUtil.java:65) at com.intellij.psi.impl.source.tree.ChangeUtil.decodeInformation(ChangeUtil.java:65) at com.intellij.psi.impl.source.tree.ChangeUtil.lambda$decodeInformation$1(ChangeUtil.java:59) at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:575) at com.intellij.psi.impl.source.tree.ChangeUtil.decodeInformation(ChangeUtil.java:59) at com.intellij.psi.impl.source.tree.SharedImplUtil.doReplace(SharedImplUtil.java:197) at com.intellij.psi.impl.source.JavaStubPsiElement.replace(JavaStubPsiElement.java:112) at com.siyeh.ig.style.BoundedWildcardInspection.createClassCopy(BoundedWildcardInspection.java:360) at com.siyeh.ig.style.BoundedWildcardInspection.lambda$canChangeTo$2(BoundedWildcardInspection.java:260) at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:575) at com.siyeh.ig.style.BoundedWildcardInspection.canChangeTo(BoundedWildcardInspection.java:259) at com.siyeh.ig.style.BoundedWildcardInspection.access$000(BoundedWildcardInspection.java:45) at com.siyeh.ig.style.BoundedWildcardInspection$1.visitTypeElement(BoundedWildcardInspection.java:75) at com.intellij.psi.impl.source.PsiTypeElementImpl.accept(PsiTypeElementImpl.java:58) at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65) at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:56) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.runToolOnElements(LocalInspectionsPass.java:294) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$3(LocalInspectionsPass.java:263) at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:155) at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:147) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$4(LocalInspectionsPass.java:262) at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126) at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$5(LocalInspectionsPass.java:262) at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149) at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:162) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110) at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117) at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96) at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170) at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182) at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96) at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177) Caused by: com.intellij.psi.PsiInvalidElementAccessException: Element: class de.plushnikov.intellij.plugin.psi.LombokLightClassBuilder #JAVA because: different providers: com.intellij.psi.DummyHolderViewProvider{vFile=LightVirtualFile: /DummyHolder, content=com.intellij.psi.AbstractFileViewProvider$PsiFileContent@79276a02, eventSystemEnabled=false}(4df01706); com.intellij.psi.SingleRootFileViewProvider{vFile=LightVirtualFile: /DummyHolder, content=VirtualFileContent{size=0}, eventSystemEnabled=true}(65201a44) invalidated at: no info ... 87 more

AND

2020-07-30 10:21:13,014 [1176606] WARN - Container.ComponentManagerImpl - Class constructor must not have parameters: de.plushnikov.intellij.plugin.settings.ProjectSettingsPage [Plugin: Lombook Plugin] com.intellij.diagnostic.PluginException: Class constructor must not have parameters: de.plushnikov.intellij.plugin.settings.ProjectSettingsPage [Plugin: Lombook Plugin] at com.intellij.serviceContainer.ComponentManagerImpl.instantiateExtensionWithPicoContainerOnlyIfNeeded(ComponentManagerImpl.kt:694) at com.intellij.openapi.options.ConfigurableEP$ClassProducer.createElement(ConfigurableEP.java:422) at com.intellij.openapi.options.ConfigurableEP.createConfigurable(ConfigurableEP.java:329) at com.intellij.openapi.options.ex.ConfigurableWrapper.createConfigurable(ConfigurableWrapper.java:45) at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:119) at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:94) at com.intellij.openapi.options.ex.ConfigurableWrapper.getId(ConfigurableWrapper.java:214) at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.groupConfigurables(ConfigurableExtensionPointUtil.java:267) at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:129) at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.lambda$getConfigurableGroup$1(ConfigurableExtensionPointUtil.java:119) at com.intellij.openapi.util.ClearableLazyValue$2.compute(ClearableLazyValue.java:26) at com.intellij.openapi.util.ClearableLazyValue.getValue(ClearableLazyValue.java:39) at com.intellij.openapi.util.AtomicClearableLazyValue.getValue(AtomicClearableLazyValue.java:9) at com.intellij.openapi.options.ex.EpBasedConfigurableGroup.(EpBasedConfigurableGroup.kt:113) at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:118) at com.intellij.ide.actions.ShowSettingsUtilImpl.getConfigurableGroups(ShowSettingsUtilImpl.java:50) at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:54) at com.intellij.ui.mac.MacOSApplicationProvider$Worker.lambda$initMacApplication$1(MacOSApplicationProvider.java:78) at com.intellij.ui.mac.MacOSApplicationProvider$Worker.lambda$submit$7(MacOSApplicationProvider.java:175) at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:201) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802) at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:322) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:132) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47) at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:188) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:967) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:839) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:450) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:744) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:449) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:497) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

jyan1011 commented 4 years ago

Waiting for new version

minhkhoi209 commented 4 years ago

Any updates on this? It causes the IDEA to be super unhealthy.

Please check https://github.com/mplushnikov/lombok-intellij-plugin/issues/840#issuecomment-666085509 for work-around solution.

royremi commented 4 years ago

any ETA for that without having to do the workaround?

andregs commented 4 years ago

any ETA for that without having to do the workaround?

August. See https://github.com/mplushnikov/lombok-intellij-plugin/issues/829#issuecomment-660442053

dkowis commented 4 years ago

https://github.com/JetBrains/Grammar-Kit/releases I was wondering if perhaps this needs to be updated before the problem goes away entirely.

GrammarKit seems to provide the PSI stuff, and I only see a 2020.1 release in there.

rislah commented 4 years ago

Such a popular plugin many people use uncompatible with latest intellij version and the only guy who can do something about it is away for almost a month already

TheBestPessimist commented 4 years ago

give it a break folks. It's not like all of a sudden 2020.1 is obsolete and no longer working.

Achieve777 commented 4 years ago

i've never worked with IntelliJ plugins, but i think the issue is here.

basically, the plugin system will intern the psi elements based on the equality.

because this doesn't take into account the navigationElement, the two instances with different navigationElements will be equal and it'll use the previous version. unfortunately, the previous version's navigationElement isn't valid, so it fails.

if you update the equality check from: return Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText); to something like (this is me just hacking something to see if it works, clearly the author will know a better check): return isValid() == that.isValid() && Objects.equals(getNavigationElement(), that.getNavigationElement()) && Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);

it won't de-dupe the two LombokLightMethodBuilder.

here's the patch:

Index: src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java (date 1596080717644)
@@ -287,7 +287,8 @@
     if (!getParameterList().equals(that.getParameterList())) {
       return false;
     }
-    return Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
+
+    return isValid() == that.isValid() && Objects.equals(getNavigationElement(), that.getNavigationElement()) && Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
   }

   @Override
Index: gradle.properties
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- gradle.properties (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ gradle.properties (date 1596080940034)
@@ -4,11 +4,11 @@
 #
 #ideaVersion=2020.1
 #ideaVersion=2020.1.2
-ideaVersion=LATEST-EAP-SNAPSHOT
+ideaVersion=2020.2
 #
 pluginGroup=de.plushnikov.intellij.plugin
 pluginName=lombok-plugin
-pluginVersion=0.30
+pluginVersion=0.30-patch
 #
 javaVersion=1.8
 sources=true

i uploaded a jar here: lombok-plugin-0.30-patch-2020.2.jar.zip

awesome!!! it works well

swiedenfeld commented 4 years ago
Index: src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java (date 1596080717644)
@@ -287,7 +287,8 @@
     if (!getParameterList().equals(that.getParameterList())) {
       return false;
     }
-    return Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
+
+    return isValid() == that.isValid() && Objects.equals(getNavigationElement(), that.getNavigationElement()) && Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
   }

   @Override
Index: gradle.properties
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- gradle.properties (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ gradle.properties (date 1596080940034)
@@ -4,11 +4,11 @@
 #
 #ideaVersion=2020.1
 #ideaVersion=2020.1.2
-ideaVersion=LATEST-EAP-SNAPSHOT
+ideaVersion=2020.2
 #
 pluginGroup=de.plushnikov.intellij.plugin
 pluginName=lombok-plugin
-pluginVersion=0.30
+pluginVersion=0.30-patch
 #
 javaVersion=1.8
 sources=true

Apparently, these changes mend the issue in my installation of IDEA 2020.2. I'm not familiar with the code base, therefore I cannot assess if it's the right thing to do.

@ajchun Consider to open a Pull Request (PR) with your changes and mention this issue.

leonard84 commented 4 years ago

There is already a PR #860 With a comment from @mplushnikov (the owner of this plugin)

Thank you for your improvement, I'm in vacation and will look on it as soon as I'l be back.

So we just have to patient, everybody has the right to a vacation, especially if they provide something free of charge.

For the future it might be worthwhile to consider adding a second maintainer.

sevenleave commented 4 years ago

It's the same issue as during the 2020.1 release - you need to uninstall the plugin, restart Idea, install lombok plugin 0.30 EAP and it works again.

This works for me, IDEA version: 2020.2

JFourier commented 4 years ago

i've never worked with IntelliJ plugins, but i think the issue is here.

basically, the plugin system will intern the psi elements based on the equality.

because this doesn't take into account the navigationElement, the two instances with different navigationElements will be equal and it'll use the previous version. unfortunately, the previous version's navigationElement isn't valid, so it fails.

if you update the equality check from: return Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText); to something like (this is me just hacking something to see if it works, clearly the author will know a better check): return isValid() == that.isValid() && Objects.equals(getNavigationElement(), that.getNavigationElement()) && Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);

it won't de-dupe the two LombokLightMethodBuilder.

here's the patch:

Index: src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightMethodBuilder.java (date 1596080717644)
@@ -287,7 +287,8 @@
     if (!getParameterList().equals(that.getParameterList())) {
       return false;
     }
-    return Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
+
+    return isValid() == that.isValid() && Objects.equals(getNavigationElement(), that.getNavigationElement()) && Objects.equals(myReturnTypeAsText, that.myReturnTypeAsText);
   }

   @Override
Index: gradle.properties
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- gradle.properties (revision 52195c0fdacd1fdfb74a3b13165d53c561b0f873)
+++ gradle.properties (date 1596080940034)
@@ -4,11 +4,11 @@
 #
 #ideaVersion=2020.1
 #ideaVersion=2020.1.2
-ideaVersion=LATEST-EAP-SNAPSHOT
+ideaVersion=2020.2
 #
 pluginGroup=de.plushnikov.intellij.plugin
 pluginName=lombok-plugin
-pluginVersion=0.30
+pluginVersion=0.30-patch
 #
 javaVersion=1.8
 sources=true

i uploaded a jar here: lombok-plugin-0.30-patch-2020.2.jar.zip

thank you!! this patch is work for my question

yuandongxu commented 4 years ago

May I ask when will the new version be released and the version that can be used normally? Thank you!

astubbs commented 4 years ago

May I ask when will the new version be released and the version that can be used normally? Thank you!

https://github.com/mplushnikov/lombok-intellij-plugin/issues/829#issuecomment-660442053 .. scroll up :)

wojciechmusial commented 4 years ago

Lombok should be natively supported by JetBrains, could you guys comment, upvote this: https://youtrack.jetbrains.com/issue/IDEABKL-5667? Maybe they will finally do something about it, with all due respect for the author, millions of devs shouldn't be dependent on single maintainer plugin.

artem-emelin commented 4 years ago

IDEA Version: IntelliJ IDEA 2020.2 (Ultimate Edition) Build #IU-202.6397.94, built on July 27, 2020 JDK Version: OracleJDK 11.0.2 OS Type & Version: Windows 10 Enterprise 1909 Lombok Plugin Version: 0.30 EPA

Exception 1

com.intellij.diagnostic.PluginException: Element: class de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder #JAVA  because: psi is outdated
invalidated at: no info [Plugin: Lombook Plugin]
    at com.intellij.ide.plugins.PluginManagerCore.createPluginException(PluginManagerCore.java:290)
    at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:12)
    at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:67)
    at com.intellij.psi.util.PsiUtilCore.ensureValid(PsiUtilCore.java:478)
    at com.intellij.psi.impl.PsiClassImplUtil.lambda$createMembersMap$4(PsiClassImplUtil.java:346)
    at com.intellij.util.containers.ConcurrentFactoryMap$2.create(ConcurrentFactoryMap.java:174)
    at com.intellij.util.containers.ConcurrentFactoryMap.get(ConcurrentFactoryMap.java:40)
    at com.intellij.psi.impl.PsiClassImplUtil$MembersMap.get(PsiClassImplUtil.java:326)
    at com.intellij.psi.impl.PsiClassImplUtil$MembersMap.access$000(PsiClassImplUtil.java:318)
    at com.intellij.psi.impl.PsiClassImplUtil.getMap(PsiClassImplUtil.java:175)
    at com.intellij.psi.impl.PsiClassImplUtil.getAllByMap(PsiClassImplUtil.java:166)
    at com.intellij.psi.impl.PsiClassImplUtil.getAllMethods(PsiClassImplUtil.java:58)
    at com.intellij.psi.impl.source.PsiClassImpl.getAllMethods(PsiClassImpl.java:335)
    at com.intellij.execution.junit.JUnitUtil.lambda$isJUnit5TestClass$1(JUnitUtil.java:308)
    at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:153)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
    at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:76)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:150)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:120)
    at com.intellij.execution.junit.JUnitUtil.isJUnit5TestClass(JUnitUtil.java:306)
    at com.intellij.execution.junit.JUnit5Framework.isTestClass(JUnit5Framework.java:56)
    at com.intellij.testIntegration.JavaTestFramework.isTestClass(JavaTestFramework.java:55)
    at com.intellij.codeInsight.TestFrameworksImpl.isTestClass(TestFrameworksImpl.java:18)
    at com.intellij.psi.impl.ElementPresentationUtil.getClassKindImpl(ElementPresentationUtil.java:134)
    at com.intellij.psi.impl.ElementPresentationUtil.lambda$getClassKind$0(ElementPresentationUtil.java:100)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
    at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    at com.intellij.psi.impl.ElementPresentationUtil.getClassKind(ElementPresentationUtil.java:103)
    at com.intellij.psi.impl.PsiClassImplUtil.lambda$static$0(PsiClassImplUtil.java:226)
    at com.intellij.ui.IconDeferrerImpl.deferImpl(IconDeferrerImpl.java:70)
    at com.intellij.ui.IconDeferrerImpl.defer(IconDeferrerImpl.java:60)
    at com.intellij.psi.impl.PsiClassImplUtil.getClassIcon(PsiClassImplUtil.java:248)
    at com.intellij.psi.impl.PsiClassImplUtil.getClassIcon(PsiClassImplUtil.java:235)
    at com.intellij.psi.impl.source.PsiClassImpl.getElementIcon(PsiClassImpl.java:533)
    at com.intellij.psi.impl.ElementBase.doComputeIconNow(ElementBase.java:110)
    at com.intellij.psi.impl.ElementBase.lambda$computeIconNow$2(ElementBase.java:97)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
    at com.intellij.psi.impl.ElementBase.computeIconNow(ElementBase.java:97)
    at com.intellij.psi.impl.ElementBase.lambda$static$0(ElementBase.java:41)
    at com.intellij.ui.CoreIconManager.lambda$createDeferredIcon$0(CoreIconManager.java:48)
    at com.intellij.ui.IconDeferrerImpl.deferImpl(IconDeferrerImpl.java:70)
    at com.intellij.ui.IconDeferrerImpl.defer(IconDeferrerImpl.java:60)
    at com.intellij.ui.CoreIconManager.createDeferredIcon(CoreIconManager.java:48)
    at com.intellij.psi.impl.ElementBase.computeIcon(ElementBase.java:89)
    at com.intellij.psi.impl.ElementBase.getIcon(ElementBase.java:68)
    at com.intellij.ide.JavaFileIconPatcher.patchIcon(JavaFileIconPatcher.java:56)
    at com.intellij.util.IconUtil.lambda$static$0(IconUtil.java:155)
    at com.intellij.ui.DeferredIconImpl.evaluate(DeferredIconImpl.java:279)
    at com.intellij.ui.DeferredIconImpl.lambda$scheduleEvaluation$0(DeferredIconImpl.java:166)
    at com.intellij.ui.IconDeferrerImpl.evaluateDeferred(IconDeferrerImpl.java:98)
    at com.intellij.ui.DeferredIconImpl.lambda$scheduleEvaluation$1(DeferredIconImpl.java:166)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:77)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:153)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:114)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:56)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:170)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:56)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:111)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:77)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:98)
    at com.intellij.ui.DeferredIconImpl.lambda$scheduleEvaluation$4(DeferredIconImpl.java:165)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:215)
    at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:26)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:194)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:207)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:183)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.intellij.psi.PsiInvalidElementAccessException: Element: class de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder #JAVA  because: psi is outdated
invalidated at: no info
    ... 87 more

Exception 2

During querying provider Run line marker (class com.intellij.execution.lineMarker.RunLineMarkerProvider)

com.intellij.diagnostic.PluginException: Element: class de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder #JAVA  because: psi is outdated
invalidated at: no info [Plugin: Lombook Plugin]
    at com.intellij.ide.plugins.PluginManagerCore.createPluginException(PluginManagerCore.java:290)
    at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:12)
    at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:67)
    at com.intellij.psi.util.PsiUtilCore.ensureValid(PsiUtilCore.java:478)
    at com.intellij.psi.impl.PsiClassImplUtil.lambda$createMembersMap$4(PsiClassImplUtil.java:346)
    at com.intellij.util.containers.ConcurrentFactoryMap$2.create(ConcurrentFactoryMap.java:174)
    at com.intellij.util.containers.ConcurrentFactoryMap.get(ConcurrentFactoryMap.java:40)
    at com.intellij.psi.impl.PsiClassImplUtil$MembersMap.get(PsiClassImplUtil.java:326)
    at com.intellij.psi.impl.PsiClassImplUtil$MembersMap.access$000(PsiClassImplUtil.java:318)
    at com.intellij.psi.impl.PsiClassImplUtil.getMap(PsiClassImplUtil.java:175)
    at com.intellij.psi.impl.PsiClassImplUtil.findByMap(PsiClassImplUtil.java:130)
    at com.intellij.psi.impl.PsiClassImplUtil.findMethodsByName(PsiClassImplUtil.java:74)
    at com.intellij.psi.impl.source.ClassInnerStuffCache.findMethodsByName(ClassInnerStuffCache.java:69)
    at com.intellij.psi.impl.source.PsiClassImpl.findMethodsByName(PsiClassImpl.java:360)
    at com.intellij.psi.util.PsiMethodUtil.findMainMethod(PsiMethodUtil.java:27)
    at com.intellij.psi.util.PsiMethodUtil.findMainInClass(PsiMethodUtil.java:64)
    at com.intellij.execution.application.ApplicationRunLineMarkerProvider.getInfo(ApplicationRunLineMarkerProvider.java:29)
    at com.intellij.execution.lineMarker.RunLineMarkerProvider.getLineMarkerInfo(RunLineMarkerProvider.java:50)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.queryProviders(LineMarkersPass.java:163)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.lambda$doCollectInformation$3(LineMarkersPass.java:88)
    at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:81)
    at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:83)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:54)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:399)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:392)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:391)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:367)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:365)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:181)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Caused by: com.intellij.psi.PsiInvalidElementAccessException: Element: class de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder #JAVA  because: psi is outdated
invalidated at: no info
    ... 37 more
mfgabriel92 commented 4 years ago

The solutions above did not work. Neither reinstalling the plugin again nor replacing the JAR with the modified one.

YiuTerran commented 4 years ago

Any update to fix the psi problem?

TheBestPessimist commented 4 years ago

Here's the update: https://github.com/mplushnikov/lombok-intellij-plugin/commit/60c1f2e37dc7ddadf58a62f03b1be06ac30696ff

mplushnikov commented 4 years ago

There are no fix at the moment. One of IntelliJ caches looks like broken. I'm waiting for comming change (Build: 202.7023) from Jetbrains in https://youtrack.jetbrains.com/issue/IDEA-248146 to verify if it fix the problem.

carlitorendon commented 4 years ago

@mplushnikov thank you for the great work you do man. Already went and left some comments to the JetBrains team. We already support lombok (paypal) but I can't wrap my head as to why they have not made Lombok (and you if you would like) as part of native IDEA.

effiban commented 4 years ago

@mplushnikov - agree with @carlitorendon , in my company we have one huge repository that uses Lombok extensively and it wouldn't be possible without you.

OmriYaHoo commented 4 years ago

@mplushnikov thank you for the great work you do man. Already went and left some comments to the JetBrains team. We already support lombok (paypal) but I can't wrap my head as to why they have not made Lombok (and you if you would like) as part of native IDEA.

I actually started using IntelliJ 2019.3.5 back again since I can't work without Lombok in our company projects and all other solutions for the 2020 version that were suggested didn't solve it for me.

Ryaryu commented 4 years ago

@mplushnikov thank you for the great work you do man. Already went and left some comments to the JetBrains team. We already support lombok (paypal) but I can't wrap my head as to why they have not made Lombok (and you if you would like) as part of native IDEA.

I actually started using IntelliJ 2019.3.5 back again since I can't work without Lombok in our company projects and all other solutions for the 2020 version that were suggested didn't solve it for me.

The plugin works fine for 2020.1, it only breaks with 2020.2. Soon we'll have 2020.2.1 which will probably fix this.

boubaca commented 4 years ago

so lombok can no longer now work on recent Idea ? any idea when this can move on ?

shepherdjerred commented 4 years ago

so lombok can no longer now work on recent Idea ? any idea when this can move on ?

See: https://github.com/mplushnikov/lombok-intellij-plugin/pull/860#issuecomment-668582234

The .jar on this comment works for me: https://github.com/mplushnikov/lombok-intellij-plugin/issues/840#issuecomment-666085509