eclipse-jdt / eclipse-jdt/eclipse.jdt.core

NPE in LocalDeclaration.resolve(LocalDeclaration.java:379)

Open
#5,213 11 comments 0 reactions 1 assignee Claimed by @srikanth-sankaran View on GitHub
bug regression
Dominant language
Java
Stars
237
Forks
195
Avg merge
1d 12h
Merged PRs (30d)
47

Description

1) Import JDT.UI project into the workspace and open `org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgMoveStarter` in the editor.
2) Right click on `ReorgMoveStarter.create()` method and try to "Open Call Hierarchy" on it.
3) Call Hierarchy opens and shows no callers (there **are** some), at same time error is logged into the log, see below.
4) Same happens with the "References -> Workspace" action. Searching for the `ReorgMoveStarter` **type** references works.

```
java.lang.NullPointerException: Cannot read field "id" because "variableType" is null
at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:379)
at org.eclipse.jdt.internal.compiler.ast.Statement.resolveWithBindings(Statement.java:526)
at org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveStatements(ASTNode.java:699)
at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:143)
at org.eclipse.jdt.internal.compiler.ast.Initializer.resolve(Initializer.java:149)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1395)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1610)
at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:661)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:2055)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatchesDefaultImpl(MatchLocator.java:1364)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1283)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1401)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1522)
at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:143)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:279)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:638)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:697)
at org.eclipse.jdt.internal.corext.callhierarchy.CallerMethodWrapper.findChildren(CallerMethodWrapper.java:167)
at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.performSearch(MethodWrapper.java:265)
at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.doFindChildren(MethodWrapper.java:196)
at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.getCalls(MethodWrapper.java:87)
at org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.getCalls(DeferredMethodWrapper.java:72)
at org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.lambda$0(DeferredMethodWrapper.java:80)
at org.eclipse.jdt.core.JavaCore.lambda$1(JavaCore.java:6233)
at org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles(JavaModelManager.java:5752)
at org.eclipse.jdt.internal.core.JavaModelManager.callReadOnly(JavaModelManager.java:5741)
at org.eclipse.jdt.core.JavaCore.callReadOnly(JavaCore.java:6217)
at org.eclipse.jdt.core.JavaCore.runReadOnly(JavaCore.java:6232)
at org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.fetchDeferredChildren(DeferredMethodWrapper.java:80)
at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:215)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
```

I believe it could be regression from e49ba497fb93ece87242a1da159f1ceb2dfada0a / https://github.com/eclipse-jdt/eclipse.jdt.core/pull/4164, where the code above the NPE changed the `variableType` assignments. @srikanth-sankaran : could you please check?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.