vscode-java icon indicating copy to clipboard operation
vscode-java copied to clipboard

NullPointerException during compilation

Open Skylark95 opened this issue 2 years ago • 8 comments

Language server throws NullPointerException when building project, resulting in extension crash and no Intellisense:

java.lang.NullPointerException: Cannot read field "scope" because "this.units[i]" is null
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:531)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:562)
	at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:344)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.accept(CompilationUnitResolver.java:190)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.accept(CompilationUnitResolver.java:185)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:346)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:276)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:585)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport(CompilationUnitScope.java:657)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java:486)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:559)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1311)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:790)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1245)
	at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:868)
	at org.eclipse.jdt.core.manipulation.CoreASTProvider$1.run(CoreASTProvider.java:294)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.jdt.core.manipulation.CoreASTProvider.createAST(CoreASTProvider.java:286)
	at org.eclipse.jdt.core.manipulation.CoreASTProvider.getAST(CoreASTProvider.java:199)
	at org.eclipse.jdt.core.manipulation.CoreASTProvider.getAST(CoreASTProvider.java:189)
	at org.eclipse.jdt.ls.core.internal.handlers.InlayHintsHandler.inlayHint(InlayHintsHandler.java:59)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$54(JDTLanguageServer.java:1154)
	at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Environment
  • Operating System: macOS Ventura 13.5
  • JDK version: OpenJDK Runtime Environment Homebrew (build 17.0.8+0)
  • Visual Studio Code version: Version: 1.81.0 (Universal)
  • Java extension version: v1.21.0
Steps To Reproduce
  1. Open offending project and run Java: Rebuild Projects
  2. Open any file for editing and the error will occur.

I cannot include sample project unfortunately due to company policy but I have included the necessary logs. The error does not appear to occur on all projects, just certain ones.

extension.log

Current Result
Expected Result
Additional Informations
  • Rolling back to v1.20.0 also resolves the issue

Skylark95 avatar Aug 07 '23 17:08 Skylark95

@Skylark95 You can try to add

"java.inlayHints.parameterNames.enabled": "none",

to your settings.json

snjeza avatar Aug 07 '23 19:08 snjeza

@snjeza I added the mentioned config and still get the same behavior and exception on v1.21.0

Skylark95 avatar Aug 07 '23 20:08 Skylark95

@Skylark95 ~~Could you check your workspace settings.json?~~ This is an upstream jdt.core issue.

snjeza avatar Aug 08 '23 00:08 snjeza

@Skylark95 Could you provide your pom.xml or build.gradle?

snjeza avatar Aug 08 '23 22:08 snjeza

@snjeza Unfortunately unable to get permission from my company to provide that. :(

Skylark95 avatar Aug 10 '23 14:08 Skylark95

@Skylark95 ~Could you check your workspace settings.json?~ This is an upstream jdt.core issue.

I can't find anything regarding this in jdt core issues. Was this adressed?

bdux avatar Sep 11 '23 07:09 bdux

@Skylark95 Could you test Java LS 1.24.3? It includes the fix from https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1376

snjeza avatar Sep 17 '23 00:09 snjeza

use Optional.ofNullable() for "this.units[i]" .

abhinavbhatia5 avatar Jul 08 '24 08:07 abhinavbhatia5

The upstream fix has been included in vscode-java a while ago. Inlay hints no longer cause this issue.

fbricon avatar Oct 15 '25 12:10 fbricon