intellij-haskforce icon indicating copy to clipboard operation
intellij-haskforce copied to clipboard

NullPointerException

Open LeanderK opened this issue 8 years ago • 1 comments

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.

LeanderK avatar Aug 20 '16 22:08 LeanderK

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.

carymrobbins avatar Aug 27 '16 01:08 carymrobbins