Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exception thrown for documentation lookup on hover in IntelliJ #731

Closed
jackm opened this issue Aug 17, 2022 · 0 comments
Closed

Exception thrown for documentation lookup on hover in IntelliJ #731

jackm opened this issue Aug 17, 2022 · 0 comments
Labels

Comments

@jackm
Copy link

jackm commented Aug 17, 2022

Describe the bug
Got an unhandled exception from the Robot Framework LS plugin for PyCharm/IntelliJ when trying to show keyword documentation on hover.

The exception seems to be originating from method robocorp.lsp.intellij.FeatureHover.getCustomDocumentationElement in FeatureHover.java:37.

To Reproduce
Not 100% certain, but seems to happen after editing a robot file where the static code analysis (code insight) hasn't resynced/rerun fully and when hovering over a keyword in the file.

Expected behavior
No unhandled exceptions thrown.

Versions:

  • OS: Linux, Ubuntu 20.04.4 LTS
  • Robot Framework Version: 5.0.1
  • Robot Framework Language Server Version: 1.0.0
  • Client Version: PyCharm 2022.2 Professional, build PY-222.3345.131

Logs
Full stacktrace:

java.lang.NullPointerException: Cannot invoke "com.intellij.psi.PsiElement.getText()" because "contextElement" is null
	at robocorp.lsp.intellij.FeatureHover.getCustomDocumentationElement(FeatureHover.java:37)
	at com.intellij.lang.documentation.CompositeDocumentationProvider.getCustomDocumentationElement(CompositeDocumentationProvider.java:283)
	at com.intellij.codeInsight.documentation.DocumentationManager.customElement(DocumentationManager.java:998)
	at com.intellij.codeInsight.documentation.DocumentationManager.doFindTargetElementAtOffset(DocumentationManager.java:976)
	at com.intellij.codeInsight.documentation.DocumentationManager.findTargetElementAtOffset(DocumentationManager.java:962)
	at com.intellij.codeInsight.documentation.DocumentationManager.findTargetElementAndContext(DocumentationManager.java:904)
	at com.intellij.lang.documentation.ide.impl.IdeDocumentationTargetProviderImpl.documentationTargets(IdeDocumentationTargetProviderImpl.kt:42)
	at com.intellij.lang.documentation.ide.actions.ActionsKt.targetsFromEditor(actions.kt:96)
	at com.intellij.lang.documentation.ide.actions.ActionsKt.documentationTargetsInner(actions.kt:64)
	at com.intellij.lang.documentation.ide.actions.ActionsKt.access$documentationTargetsInner(actions.kt:1)
	at com.intellij.lang.documentation.ide.actions.DocumentationTargetsDataRule.getData(actions.kt:56)
	at com.intellij.lang.documentation.ide.actions.DocumentationTargetsDataRule.getData(actions.kt:54)
	at com.intellij.ide.impl.DataManagerImpl.getRulesData(DataManagerImpl.java:211)
	at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRuleInner$8(DataManagerImpl.java:184)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRuleInner(DataManagerImpl.java:113)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRulesInner(DataManagerImpl.java:100)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRules(DataManagerImpl.java:67)
	at com.intellij.openapi.actionSystem.impl.PreCachedDataContext.getData(PreCachedDataContext.java:166)
	at com.intellij.openapi.actionSystem.DataContext.getData(DataContext.java:42)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.ensureSlowDataKeysPreCached(ActionUpdater.java:429)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$callAction$5(ActionUpdater.java:183)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1154)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:183)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:153)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.updateActionReal(ActionUpdater.java:129)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$0(ActionUpdater.java:116)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.java:649)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:498)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$20(ActionUpdater.java:477)
	at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1398)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:477)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:550)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$20(ActionUpdater.java:477)
	at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1398)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:477)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:272)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$12(ActionUpdater.java:340)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$13(ActionUpdater.java:359)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1154)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$tryRunReadActionAndCancelBeforeWrite$17(ActionUpdater.java:391)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.tryRunReadActionAndCancelBeforeWrite(ActionUpdater.java:387)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$14(ActionUpdater.java:359)
	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:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
	at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:365)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$15(ActionUpdater.java:358)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:833)
@jackm jackm added bug Something isn't working robotframework-ls labels Aug 17, 2022
@fabioz fabioz closed this as completed in 8c32785 Aug 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants