intellij-haskforce
intellij-haskforce copied to clipboard
NullPointerException
well, we all love NPEs. Happened after if opened a project.
[ 195244] ERROR - mpl.search.PsiSearchHelperImpl - IntelliJ IDEA 2016.2.2 Build #IU-162.1628.40
[ 195244] ERROR - mpl.search.PsiSearchHelperImpl - JDK: 1.8.0_25
[ 195244] ERROR - mpl.search.PsiSearchHelperImpl - VM: Java HotSpot(TM) 64-Bit Server VM
[ 195245] ERROR - mpl.search.PsiSearchHelperImpl - Vendor: Oracle Corporation
[ 195245] ERROR - mpl.search.PsiSearchHelperImpl - OS: Mac OS X
[ 195245] ERROR - mpl.search.PsiSearchHelperImpl - Last Action:
[ 195245] ERROR - mpl.search.PsiSearchHelperImpl - null
java.lang.NullPointerException
at com.haskforce.cabal.lang.psi.impl.ModulePartImpl$class.resolveToModuleDir(ModulePartImpl.scala:69)
at com.haskforce.cabal.lang.psi.impl.ModulePartImpl$class.resolve(ModulePartImpl.scala:58)
at com.haskforce.cabal.lang.psi.ModulePart.resolve(CabalCompositeElement.scala:26)
at com.haskforce.cabal.lang.psi.CabalReference.resolve(CabalReference.scala:13)
at com.intellij.psi.PsiReferenceBase.isReferenceTo(PsiReferenceBase.java:128)
at com.intellij.psi.search.SingleTargetRequestResultProcessor.processTextOccurrence(SingleTargetRequestResultProcessor.java:52)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$10.execute(PsiSearchHelperImpl.java:736)
at com.intellij.psi.impl.search.LowLevelSearchUtil.a(LowLevelSearchUtil.java:134)
at com.intellij.psi.impl.search.LowLevelSearchUtil.access$000(LowLevelSearchUtil.java:47)
at com.intellij.psi.impl.search.LowLevelSearchUtil$1.execute(LowLevelSearchUtil.java:204)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processTextOccurrences(LowLevelSearchUtil.java:271)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsContainingWordInElement(LowLevelSearchUtil.java:200)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:200)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:188)
at com.intellij.openapi.application.ReadActionProcessor$1.compute(ReadActionProcessor.java:32)
at com.intellij.openapi.application.ReadActionProcessor$1.compute(ReadActionProcessor.java:29)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:867)
at com.intellij.openapi.application.ReadActionProcessor.process(ReadActionProcessor.java:29)
at com.intellij.concurrency.JobLauncherImpl.a(JobLauncherImpl.java:99)
at com.intellij.concurrency.JobLauncherImpl$$Lambda$191/126816593.run(Unknown Source)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:494)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:443)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.concurrency.JobLauncherImpl.a(JobLauncherImpl.java:95)
at com.intellij.concurrency.JobLauncherImpl$$Lambda$190/1437181288.run(Unknown Source)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1034)
at com.intellij.concurrency.JobLauncherImpl.a(JobLauncherImpl.java:106)
at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:52)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processElementsWithWord(PsiSearchHelperImpl.java:208)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.a(PsiSearchHelperImpl.java:905)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processRequests(PsiSearchHelperImpl.java:597)
at com.intellij.psi.search.SearchRequestQuery.processResults(SearchRequestQuery.java:45)
at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:79)
at com.intellij.util.MergeQuery.processSubQuery(MergeQuery.java:85)
at com.intellij.util.MergeQuery.forEach(MergeQuery.java:57)
at com.intellij.util.UniqueResultsQuery.process(UniqueResultsQuery.java:66)
at com.intellij.util.UniqueResultsQuery.forEach(UniqueResultsQuery.java:56)
at com.intellij.util.UniqueResultsQuery.findAll(UniqueResultsQuery.java:79)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.a(IdentifierHighlighterPass.java:163)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.getHighlightUsages(IdentifierHighlighterPass.java:139)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.a(IdentifierHighlighterPass.java:195)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.doCollectInformation(IdentifierHighlighterPass.java:106)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:434)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda$916/1990657517.run(Unknown Source)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1034)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:427)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda$913/465726288.run(Unknown Source)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:494)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:443)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:426)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:402)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:154)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
[ 195246] ERROR - mpl.search.PsiSearchHelperImpl - IntelliJ IDEA 2016.2.2 Build #IU-162.1628.40
[ 195246] ERROR - mpl.search.PsiSearchHelperImpl - JDK: 1.8.0_25
[ 195246] ERROR - mpl.search.PsiSearchHelperImpl - VM: Java HotSpot(TM) 64-Bit Server VM
[ 195246] ERROR - mpl.search.PsiSearchHelperImpl - Vendor: Oracle Corporation
[ 195246] ERROR - mpl.search.PsiSearchHelperImpl - OS: Mac OS X
[ 195247] ERROR - mpl.search.PsiSearchHelperImpl - Last Action:
a test shows lastPart.resolve()
returns null. I don't understand the code fully, so i don't know whether just checking for null will solve it or whether it is only the symptom of another bug.
Yeah, that's a pretty embarrassing bug. I have a commit (29bc8ead94ea3b44b6973e09bd78b4036796096b) which I think should take care of it. I still need to introduce a test case for it, though.