Tolc / IntelliJ_Jahia_plugin

Jahia's definitions.cnd files syntax highlighting, code completion, and other amazing stuff
Apache License 2.0
22 stars 3 forks source link

IntelliJ IDEA 2021.3 - Error parsing CND #58

Closed xdebehogne closed 2 years ago

xdebehogne commented 2 years ago

Error occurs after IntelliJ IDEA update

java.lang.NoClassDefFoundError: com/intellij/psi/jsp/el/ELElementType
    at fr.tolc.jahia.intellij.plugin.cnd.references.CndJspReferenceContributor.registerReferenceProviders(CndJspReferenceContributor.java:19)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl.registerContributedReferenceProviders(ReferenceProvidersRegistryImpl.java:112)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl.createRegistrar(ReferenceProvidersRegistryImpl.java:82)
    at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl.getRegistrar(ReferenceProvidersRegistryImpl.java:118)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl.doGetReferencesFromProviders(ReferenceProvidersRegistryImpl.java:139)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry.lambda$getReferencesFromProviders$0(ReferenceProvidersRegistry.java:39)
    at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:158)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:39)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$3(CachedValueBase.java:227)
    at com.intellij.util.CachedValueBase.computeData(CachedValueBase.java:42)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$4(CachedValueBase.java:227)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:228)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:28)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:72)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:155)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:121)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry.getReferencesFromProviders(ReferenceProvidersRegistry.java:38)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry.getReferencesFromProviders(ReferenceProvidersRegistry.java:31)
    at fr.tolc.jahia.intellij.plugin.cnd.psi.CndPsiImplUtil.getReferences(CndPsiImplUtil.java:487)
    at fr.tolc.jahia.intellij.plugin.cnd.psi.impl.CndSuperTypeImpl.getReferences(CndSuperTypeImpl.java:34)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.addReferences(SharedPsiElementImplUtil.java:59)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.findReferenceAt(SharedPsiElementImplUtil.java:33)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.findReferenceAt(SharedPsiElementImplUtil.java:51)
    at com.intellij.psi.impl.PsiElementBase.findReferenceAt(PsiElementBase.java:86)
    at com.intellij.psi.AbstractFileViewProvider.findReferenceAt(AbstractFileViewProvider.java:238)
    at com.intellij.psi.SingleRootFileViewProvider.findReferenceAt(SingleRootFileViewProvider.java:223)
    at com.intellij.psi.impl.source.PsiFileImpl.findReferenceAt(PsiFileImpl.java:531)
    at com.intellij.codeInsight.TargetElementUtilBase.findReference(TargetElementUtilBase.java:189)
    at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:160)
    at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:204)
    at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:248)
    at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:227)
    at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:292)
    at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147)
    at org.jetbrains.android.AndroidGotoDeclarationHandler.getGotoDeclarationTargets(AndroidGotoDeclarationHandler.kt:50)
    at com.intellij.codeInsight.navigation.impl.GtdProvidersKt.fromGTDProvidersInner(gtdProviders.kt:31)
    at com.intellij.codeInsight.navigation.impl.GtdProvidersKt.access$fromGTDProvidersInner(gtdProviders.kt:1)
    at com.intellij.codeInsight.navigation.impl.GtdProvidersKt$fromGTDProviders$1.invoke(gtdProviders.kt:18)
    at com.intellij.codeInsight.navigation.impl.GtdProvidersKt$fromGTDProviders$1.invoke(gtdProviders.kt)
    at com.intellij.codeInsight.navigation.impl.CommonKt.processInjectionThenHost(common.kt:26)
    at com.intellij.codeInsight.navigation.impl.GtdProvidersKt.fromGTDProviders(gtdProviders.kt:17)
    at com.intellij.codeInsight.navigation.actions.GotoDeclarationOrUsageHandler2.gotoDeclarationOrUsages(GotoDeclarationOrUsageHandler2.kt:29)
    at com.intellij.codeInsight.navigation.actions.GotoDeclarationOrUsageHandler2.getCtrlMouseInfo(GotoDeclarationOrUsageHandler2.kt:35)
    at com.intellij.codeInsight.navigation.actions.GotoDeclarationAction.getCtrlMouseInfo(GotoDeclarationAction.java:94)
    at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider.doExecute(CtrlMouseHandler.java:392)
    at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider.lambda$execute$0(CtrlMouseHandler.java:370)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:521)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$3(NonBlockingReadActionImpl.java:486)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1084)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:75)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:115)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:57)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:624)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:623)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:57)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:112)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:75)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:486)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:407)
    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:829)
cedfou commented 2 years ago

I have the same exact error on: IntelliJ IDEA 2021.3 (Ultimate Edition) Build #IU-213.5744.223, built on November 27, 2021 Runtime version: 11.0.13+7-b1751.19 aarch64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. macOS 12.0.1 on Apple Silicon M1 Max

It can freeze InteliJ, so I disabled your Jahia CND plugin for the moment. Ready to Test correction when available if you want. Thanks for your plugin,

Tolc commented 2 years ago

Yayyyy, they refactored their JSP plugin API...again. Will fix as soon as possible.

Tolc commented 2 years ago

I've pushed the new version (2.0.6) on Jetbrains repo, so you should be able to update the plugin from IntelliJ tomorrow.

I'm leaving this issue open until I hear from you ;)

cedfou commented 2 years ago

Thanks Thomas, this solves the problem for me 👍

I tried to fix it myself before, but didn't succeed in compiling your project... Could you explain me one day how to do? (I have read the IntelliJ Idea plugin documentation, but it seems to be base on a new dev template...)

REM: new JahiaCommunity vidéo on Jahia Start benchmarks (vs Apple Silicon M1 Max ;) https://www.youtube.com/watch?v=wQ4-S23sjs8

Regards

cedfou commented 2 years ago

Oups, it works for an already opened project (in the past); but not for a new/fresh one. For a new one, the Jahia definition doesn't have auto-completion in definition.cnd

So the problem is not completely solved for a new project...

REM: Xavier and myself could help you to maintain it, but we cannot compile it (we don't know IntelliJ plugin mechanism...)

Kind regards,

Tolc commented 2 years ago

That has always been the case with new projects, this is another issue (that I have no idea how to fix btw), so i'm closing this one ;)