apache / apache/netbeans

Cannot invoke "com.sun.tools.javac.code.Type.hasTag(com.sun.tools.javac.code.TypeTag)" because "owner.type" is null

Open
#9,283 4 comments 0 reactions 0 assignees View on GitHub
cannot reproduce Java kind:bug nb-javac needs:triage pending-response stale
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.