exception while background scanning of projects
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 935
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 17
Description
### Apache NetBeans version
Apache NetBeans 23
### What happened
This happens I think while **background scanning projects**. Then multiple classes are shown not found in the editor but a maven build succeeds. BTW this is a multi module java maven project compiling with java 17. The IDE runs on Java 21.
```
java.lang.NullPointerException: Cannot invoke "com.sun.tools.javac.code.Type.isPrimitive()" because "t" is null
at com.sun.tools.javac.code.Types.eraseNotNeeded(Types.java:2397)
at com.sun.tools.javac.code.Types.erasure(Types.java:2390)
at com.sun.tools.javac.code.Symbol$ClassSymbol.erasure(Symbol.java:1394)
at com.sun.tools.javac.comp.TransTypes.visitIdent(TransTypes.java:820)
at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:2704)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:443)
at com.sun.tools.javac.comp.TransTypes.visitMethodDef(TransTypes.java:473)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:957)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitClassDef(TreeTranslator.java:144)
at com.sun.tools.javac.comp.TransTypes.translateClass(TransTypes.java:961)
at com.sun.tools.javac.comp.TransTypes.visitClassDef(TransTypes.java:464)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:855)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:443)
at com.sun.tools.javac.comp.TransTypes.visitNewClass(TransTypes.java:712)
at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1912)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:443)
at com.sun.tools.javac.comp.TransTypes.visitExec(TransTypes.java:630)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1644)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:172)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1133)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:443)
at com.sun.tools.javac.comp.TransTypes.visitMethodDef(TransTypes.java:478)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:957)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitClassDef(TreeTranslator.java:144)
at com.sun.tools.javac.comp.TransTypes.translateClass(TransTypes.java:961)
at com.sun.tools.javac.comp.TransTypes.visitClassDef(TransTypes.java:464)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:855)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:443)
at com.sun.tools.javac.comp.TransTypes.visitNewClass(TransTypes.java:712)
at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1912)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:443)
at com.sun.tools.javac.comp.TransTypes.translateArgs(TransTypes.java:201)
at com.sun.tools.javac.comp.TransTypes.visitApply(TransTypes.java:682)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1857)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:443)
at com.sun.tools.javac.comp.TransTypes.visitExec(TransTypes.java:630)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1644)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:172)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1133)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:443)
at com.sun.tools.javac.comp.TransTypes.visitMethodDef(TransTypes.java:478)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:957)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitClassDef(TreeTranslator.java:144)
at com.sun.tools.javac.comp.TransTypes.translateClass(TransTypes.java:961)
at com.sun.tools.javac.comp.TransTypes.visitClassDef(TransTypes.java:464)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:855)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:443)
at com.sun.tools.javac.comp.TransTypes.translateTopLevelClass(TransTypes.java:983)
at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1609)
at org.netbeans.lib.nbjavac.services.NBJavaCompiler.desugar(NBJavaCompiler.java:89)
at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1464)
at com.sun.tools.javac.api.JavacTaskImpl$2.process(JavacTaskImpl.java:475)
at com.sun.tools.javac.api.JavacTaskImpl$Filter.run(JavacTaskImpl.java:519)
at com.sun.tools.javac.api.JavacTaskImpl.generate(JavacTaskImpl.java:478)
at org.netbeans.modules.java.source.indexing.VanillaCompileWorker.lambda$compile$3(VanillaCompileWorker.java:371)
at org.netbeans.modules.java.source.parsing.FileManagerTransaction.runConcurrent(FileManagerTransaction.java:180)
[catch] at org.netbeans.modules.java.source.indexing.VanillaCompileWorker.compile(VanillaCompileWorker.java:360)
at org.netbeans.modules.java.source.indexing.JavaCustomIndexer.index(JavaCustomIndexer.java:360)
at org.netbeans.modules.parsing.spi.indexing.Indexable$MyAccessor$2.run(Indexable.java:138)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runIndexer(RepositoryUpdater.java:274)
at org.netbeans.modules.parsing.spi.indexing.Indexable$MyAccessor.index(Indexable.java:136)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doIndex(RepositoryUpdater.java:2749)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.lambda$index$0(RepositoryUpdater.java:2626)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:540)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.index(RepositoryUpdater.java:2625)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.lambda$scanSource$3(RepositoryUpdater.java:5735)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.lambda$runInContext$4(RepositoryUpdater.java:2119)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:288)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2117)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2098)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.access$1400(RepositoryUpdater.java:135)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.scanSource(RepositoryUpdater.java:5770)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.scanSources(RepositoryUpdater.java:5443)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$RootsWork.getDone(RepositoryUpdater.java:5075)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doTheWork(RepositoryUpdater.java:3452)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task._run(RepositoryUpdater.java:6197)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.access$3400(RepositoryUpdater.java:5855)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.lambda$call$0(RepositoryUpdater.java:6116)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:288)
at org.netbeans.modules.parsing.impl.RunWhenScanFinishedSupport.performScan(RunWhenScanFinishedSupport.java:83)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6116)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6112)
at org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:153)
at org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:335)
at org.netbeans.modules.parsing.nb.DataObjectEnvFactory.runPriorityIO(DataObjectEnvFactory.java:118)
at org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:67)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.run(RepositoryUpdater.java:6112)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1403)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:287)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2018)
```
### Language / Project Type / NetBeans Component
Java Maven Project (multi module)
### How to reproduce
no idea, happens sometimes after netbeans start or branch switching, but which source code part this triggers I have no idea
### Did this work correctly in an earlier version?
No / Don't know
### Operating System
Windows 11
### JDK
21.0.4; OpenJDK 64-Bit Server VM 21.0.4+7-LTS (IDE)
### Apache NetBeans packaging
Apache NetBeans provided installer
### Anything else
_No response_
### Are you willing to submit a pull request?
No
Contributor guide
Research direction
Start with the stack-trace entry points in org.netbeans.modules.java.source.indexing.VanillaCompileWorker and JavaCustomIndexer, then trace the call into org.netbeans.lib.nbjavac.services.NBJavaCompiler during project indexing. Reproduction is not provided, so first identify a triggering project or branch-switch sequence; done means background scanning no longer throws the reported NullPointerException and editor indexing remains correct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100