LFrobeen / intellij-datalog

MIT License
31 stars 4 forks source link

Plugin crashes after syntax highlighting #6

Closed nielstron closed 2 years ago

nielstron commented 2 years ago

The following error message is shown

com.intellij.diagnostic.PluginException: Cannot load class com.lfrobeen.datalog.lang.psi.DatalogDeclarationComment (
  error: com/intellij/psi/impl/source/tree/PsiCoreCommentImpl,
  classLoader=PluginClassLoader(plugin=PluginDescriptor(name=Datalog Language Support, id=com.lfrobeen.intellij-datalog, descriptorPath=plugin.xml, path=~/.local/share/JetBrains/PyCharm2021.3/intellij-datalog, version=1.0.0, package=null, isBundled=false), packagePrefix=null, instanceId=21, state=active)
)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:407)
    at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.java:256)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:232)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at com.lfrobeen.datalog.lang.psi.DatalogPsiFile$declarations$1.compute(DatalogPsiFile.kt:82)
    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.lfrobeen.datalog.lang.psi.DatalogPsiFile.declarations(DatalogPsiFile.kt:20)
    at com.lfrobeen.datalog.lang.psi.DatalogPsiFile.processDeclarations(DatalogPsiFile.kt:48)
    at com.intellij.psi.util.PsiTreeUtil.treeWalkUp(PsiTreeUtil.java:1203)
    at com.lfrobeen.datalog.DatalogReference.resolveInner(DatalogReference.kt:36)
    at com.lfrobeen.datalog.DatalogReference.access$resolveInner(DatalogReference.kt:10)
    at com.lfrobeen.datalog.DatalogReference$Companion$RESOLVER$1.resolve(DatalogReference.kt:14)
    at com.lfrobeen.datalog.DatalogReference$Companion$RESOLVER$1.resolve(DatalogReference.kt:13)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:154)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:154)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:289)
    at com.lfrobeen.datalog.DatalogReference.resolve(DatalogReference.kt:26)
    at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.resolves(PsiMultiReference.java:51)
    at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.lambda$static$0(PsiMultiReference.java:35)
    at java.base/java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
    at java.base/java.util.TimSort.sort(TimSort.java:220)
    at java.base/java.util.Arrays.sort(Arrays.java:1441)
    at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.chooseReference(PsiMultiReference.java:70)
    at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.resolve(PsiMultiReference.java:134)
    at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:177)
    at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:165)
    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 com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider.getPsiElementIn(TextEditorPsiDataProvider.java:226)
    at com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider.getSlowData(TextEditorPsiDataProvider.java:139)
    at com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider.lambda$getData$0(TextEditorPsiDataProvider.java:93)
    at com.intellij.ide.impl.DataManagerImpl.getSlowData(DataManagerImpl.java:153)
    at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRule$2(DataManagerImpl.java:121)
    at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRule$4(DataManagerImpl.java:126)
    at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:77)
    at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:56)
    at com.intellij.ide.impl.DataManagerImpl.lambda$getDataFromProvider$1(DataManagerImpl.java:77)
    at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:68)
    at com.intellij.ide.impl.dataRules.NavigatableRule.getData(NavigatableRule.java:39)
    at com.intellij.ide.impl.DataManagerImpl.getRulesData(DataManagerImpl.java:139)
    at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRule$4(DataManagerImpl.java:127)
    at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:77)
    at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:56)
    at com.intellij.ide.impl.DataManagerImpl.lambda$getDataFromProvider$1(DataManagerImpl.java:77)
    at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:68)
    at com.intellij.ide.impl.dataRules.NavigatableArrayRule.getData(NavigatableArrayRule.java:23)
    at com.intellij.ide.impl.DataManagerImpl.getRulesData(DataManagerImpl.java:139)
    at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRule$4(DataManagerImpl.java:127)
    at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:77)
    at com.intellij.openapi.actionSystem.impl.PreCachedDataContext2.getData(PreCachedDataContext2.java:174)
    at com.intellij.openapi.actionSystem.DataContext.getData(DataContext.java:42)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.ensureSlowDataKeysPreCached(ActionUpdater.java:396)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$callAction$8(ActionUpdater.java:164)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1084)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:164)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.updateActionReal(ActionUpdater.java:130)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$0(ActionUpdater.java:112)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.java:623)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:465)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:444)
    at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1454)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:444)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:520)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:444)
    at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1454)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:444)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:250)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$15(ActionUpdater.java:313)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$17(ActionUpdater.java:336)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1084)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$18(ActionUpdater.java:336)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$19(ActionUpdater.java:332)
    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.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:277)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$20(ActionUpdater.java:331)
    at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:246)
    at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:32)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:225)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:214)
    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)
Caused by: java.lang.NoClassDefFoundError: com/intellij/psi/impl/source/tree/PsiCoreCommentImpl
    at java.base/java.lang.ClassLoader.defineClass2(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1109)
    at com.intellij.util.lang.UrlClassLoader.consumeClassData(UrlClassLoader.java:290)
    at com.intellij.util.lang.ZipResourceFile.findClass(ZipResourceFile.java:116)
    at com.intellij.util.lang.JarLoader.findClass(JarLoader.java:55)
    at com.intellij.util.lang.ClassPath.findClassInLoader(ClassPath.java:217)
    at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:176)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:399)
    ... 112 more
Caused by: java.lang.ClassNotFoundException: com.intellij.psi.impl.source.tree.PsiCoreCommentImpl PluginClassLoader(plugin=PluginDescriptor(name=Datalog Language Support, id=com.lfrobeen.intellij-datalog, descriptorPath=plugin.xml, path=~/.local/share/JetBrains/PyCharm2021.3/intellij-datalog, version=1.0.0, package=null, isBundled=false), packagePrefix=null, instanceId=21, state=active)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:235)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 120 more
LFrobeen commented 2 years ago

Hi Niels, thanks for the bug report!

Currently I'm lacking the capacity to actively maintain this project, so I can't really promise to look into this issue soon.

If someone files a PR with a fix for this I'd be happy to merge and push an updated version to the IntelliJ marketplace.

LFrobeen commented 2 years ago

Actually found some time to fix this. I've submitted the package to the Jetbrains Marketplace for review. Should be available for download in 2 days or so.

nielstron commented 2 years ago

Thanks a lot 👐