Cannot invoke "com.sun.tools.javac.code.Type.hasTag(com.sun.tools.javac.code.TypeTag)" because "owner.type" is null
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 935
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 17
Description
### Apache NetBeans version
Apache NetBeans 29
### What happened
Suddenly Netbeans becomes unusable. Every click causes an exception.
### Language / Project Type / NetBeans Component
Java
### How to reproduce
It seems that it is caused by this modification.
I have this :
```java
ArrayList> sitMap = new ArrayList<>();
```
I want to insert an HashMap in the HashMap As:
```java
ArrayList>> sitMap = new ArrayList<>();
```
If syntax error occurs NetBeans crash.
### Did this work correctly in an earlier version?
No / Don't know
### Operating System
Linux version 6.4.0-150600.23.81-default running on amd64; UTF-8; fr_CH (nb)
### JDK
OpenJDK 64-Bit Server VM 24.0.2+12 Runtime: OpenJDK Runtime Environment 24.0.2+12
### Apache NetBeans packaging
Other
### Anything else
```
Annotation: An error occurred during parsing of '/mnt/agl/nbworkspace/TPA/src/org/infolab/tpa/modules/SitSynth.java'. Please report a bug against java/source and attach dump file '/home/chris/.netbeans/29/var/log/SitSynth_34.dump'.
Annotation: An error occurred during parsing of '/mnt/agl/nbworkspace/TPA/src/org/infolab/tpa/modules/SitSynth.java'. Please report a bug against java/source and attach dump file '/home/chris/.netbeans/29/var/log/SitSynth_34.dump'.
An error occurred during parsing of '/mnt/agl/nbworkspace/TPA/src/org/infolab/tpa/modules/SitSynth.java'. Please report a bug against java/source and attach dump file '/home/chris/.netbeans/29/var/log/SitSynth_34.dump'.
An error occurred during parsing of '/mnt/agl/nbworkspace/TPA/src/org/infolab/tpa/modules/SitSynth.java'. Please report a bug against java/source and attach dump file '/home/chris/.netbeans/29/var/log/SitSynth_34.dump'.
Caused: java.lang.NullPointerException: Cannot invoke "com.sun.tools.javac.code.Type.hasTag(com.sun.tools.javac.code.TypeTag)" because "owner.type" is null
at com.sun.tools.javac.code.Symbol$MethodSymbol.(Symbol.java:1985)
at com.sun.tools.javac.comp.Attr.visitErroneous(Attr.java:5274)
at com.sun.tools.javac.tree.JCTree$JCErroneous.accept(JCTree.java:3398)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:679)
at com.sun.tools.javac.comp.Attr.visitErroneous(Attr.java:5285)
at com.sun.tools.javac.tree.JCTree$JCErroneous.accept(JCTree.java:3398)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:679)
at com.sun.tools.javac.comp.Attr.attribType(Attr.java:745)
at com.sun.tools.javac.comp.Attr.attribType(Attr.java:738)
at org.netbeans.lib.nbjavac.services.NBAttr.attribType(NBAttr.java:105)
at com.sun.tools.javac.comp.Attr.attribAnyTypes(Attr.java:795)
at com.sun.tools.javac.comp.Attr.attribTypes(Attr.java:803)
at com.sun.tools.javac.comp.Attr.visitTypeApply(Attr.java:5050)
at com.sun.tools.javac.tree.JCTree$JCTypeApply.accept(JCTree.java:2858)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:679)
at com.sun.tools.javac.comp.Attr.attribType(Attr.java:745)
at com.sun.tools.javac.comp.Attr.attribType(Attr.java:738)
at org.netbeans.lib.nbjavac.services.NBAttr.attribType(NBAttr.java:105)
at com.sun.tools.javac.comp.Attr.attribAnyTypes(Attr.java:795)
at com.sun.tools.javac.comp.Attr.attribTypes(Attr.java:803)
at com.sun.tools.javac.comp.Attr.visitTypeApply(Attr.java:5050)
at com.sun.tools.javac.tree.JCTree$JCTypeApply.accept(JCTree.java:2858)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:679)
at com.sun.tools.javac.comp.Attr.attribType(Attr.java:745)
at com.sun.tools.javac.comp.Attr.attribType(Attr.java:738)
at org.netbeans.lib.nbjavac.services.NBAttr.attribType(NBAttr.java:105)
at com.sun.tools.javac.comp.MemberEnter.visitVarDef(MemberEnter.java:263)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:1082)
at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:168)
at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:180)
at com.sun.tools.javac.comp.TypeEnter$MembersPhase.finishClass(TypeEnter.java:1182)
at com.sun.tools.javac.comp.TypeEnter$MembersPhase.runPhase(TypeEnter.java:1128)
at com.sun.tools.javac.comp.TypeEnter$Phase.doCompleteEnvs(TypeEnter.java:274)
at com.sun.tools.javac.comp.TypeEnter$AbstractMembersPhase.doCompleteEnvs(TypeEnter.java:996)
at com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:244)
at com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:259)
at com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:259)
at com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:259)
at com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:259)
at com.sun.tools.javac.comp.TypeEnter.complete(TypeEnter.java:190)
at com.sun.tools.javac.code.Symbol.complete(Symbol.java:703)
at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1472)
at com.sun.tools.javac.comp.Enter.complete(Enter.java:634)
at com.sun.tools.javac.comp.Enter.main(Enter.java:601)
at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:1082)
at com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:345)
at com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:282)
at org.netbeans.modules.java.source.parsing.JavacParser.moveToPhase(JavacParser.java:742)
at org.netbeans.modules.java.source.parsing.JavacParser.getResult(JavacParser.java:536)
at org.netbeans.modules.java.source.parsing.JavacParser.getResult(JavacParser.java:140)
at org.netbeans.modules.parsing.impl.TaskProcessor.callGetResult(TaskProcessor.java:608)
at org.netbeans.modules.parsing.impl.SourceCache.getResult(SourceCache.java:241)
at org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.run(TaskProcessor.java:775)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:288)
at org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.execute(TaskProcessor.java:702)
[catch] at org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:663)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
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:2012)
```
### Are you willing to submit a pull request?
No
Contributor guide
Research direction
Reproduce the nested generic syntax error in SitSynth.java, then trace the stack from com.sun.tools.javac.comp.Attr.visitErroneous through org.netbeans.lib.nbjavac.services.NBAttr.attribType and Symbol$MethodSymbol. Inspect the related java/source parsing and compiler tests for coverage of erroneous type applications; done means the malformed declaration no longer makes NetBeans unusable or raises this NullPointerException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- compilers, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100