apache / apache/netbeans

Unexpected error (java.lang.AssertionError)

Open
#9,363 0 comments 0 reactions 0 assignees View on GitHub
debugger kind:bug nb-javac needs:triage
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

```
java.lang.AssertionError
at com.sun.tools.javac.util.Assert.error(Assert.java:155)
at com.sun.tools.javac.util.Assert.check(Assert.java:46)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:5596)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5557)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:5373)
at org.netbeans.lib.nbjavac.services.NBAttr.attribClass(NBAttr.java:74)
at com.sun.tools.javac.comp.Attr.visitClassDef(Attr.java:983)
at org.netbeans.lib.nbjavac.services.NBAttr.visitClassDef(NBAttr.java:80)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:866)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:679)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:753)
at com.sun.tools.javac.comp.Attr.visitAnonymousClassDefinition(Attr.java:3034)
at com.sun.tools.javac.comp.Attr.visitNewClass(Attr.java:2918)
at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1931)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:679)
at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:725)
at com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1315)
at org.netbeans.lib.nbjavac.services.NBAttr.visitVarDef(NBAttr.java:99)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:1082)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:679)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:753)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:772)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1461)
at org.netbeans.lib.nbjavac.services.NBAttr.visitBlock(NBAttr.java:92)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1152)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:679)
at com.sun.tools.javac.comp.DeferredAttr.attribSpeculative(DeferredAttr.java:515)
at com.sun.tools.javac.comp.Attr.attribToTree(Attr.java:430)
at com.sun.tools.javac.comp.Attr.attribStatToTree(Attr.java:423)
at com.sun.tools.javac.api.JavacTrees.attribStatToTree(JavacTrees.java:906)
at com.sun.tools.javac.api.JavacTrees.getAttrContext(JavacTrees.java:881)
at com.sun.tools.javac.api.JavacTrees.getScope(JavacTrees.java:747)
at org.netbeans.lib.nbjavac.services.NBJavacTrees.getScope(NBJavacTrees.java:110)
at org.netbeans.lib.nbjavac.services.NBJavacTrees.getScope(NBJavacTrees.java:48)
at org.netbeans.api.java.source.TreeUtilities.scopeFor(TreeUtilities.java:871)
at org.netbeans.modules.debugger.jpda.projects.PreferredCCParser$ParseExpressionTask.run(PreferredCCParser.java:592)
at org.netbeans.modules.debugger.jpda.projects.PreferredCCParser$ParseExpressionTask$2.call(PreferredCCParser.java:564)
at org.netbeans.modules.debugger.jpda.projects.PreferredCCParser$ParseExpressionTask$2.call(PreferredCCParser.java:561)
at org.netbeans.modules.debugger.jpda.projects.PreferredCCParser.runGuarded(PreferredCCParser.java:747)
at org.netbeans.modules.debugger.jpda.projects.PreferredCCParser$ParseExpressionTask.parse(PreferredCCParser.java:561)
at org.netbeans.modules.debugger.jpda.projects.PreferredCCParser.interpretOrCompileCode(PreferredCCParser.java:439)
at org.netbeans.modules.debugger.jpda.projects.EditorContextSupport.interpretOrCompileCode(EditorContextSupport.java:1436)
at org.netbeans.modules.debugger.jpda.projectsui.EditorContextImpl.interpretOrCompileCode(EditorContextImpl.java:825)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
[catch] at org.netbeans.modules.debugger.jpda.EditorContextBridge.interpretOrCompileCode(EditorContextBridge.java:111)
at org.netbeans.modules.debugger.jpda.expr.TreeEvaluator.evaluate(TreeEvaluator.java:179)
at org.netbeans.modules.debugger.jpda.JavaEvaluator.evaluateIn(JavaEvaluator.java:147)
at org.netbeans.modules.debugger.jpda.JavaEvaluator.evaluate(JavaEvaluator.java:95)
at org.netbeans.modules.debugger.jpda.expr.EvaluatorExpression.evaluate(EvaluatorExpression.java:53)
at org.netbeans.modules.debugger.jpda.JPDADebuggerImpl.evaluateGeneric(JPDADebuggerImpl.java:967)
at org.netbeans.modules.debugger.jpda.JPDADebuggerImpl.evaluate(JPDADebuggerImpl.java:353)
at org.netbeans.modules.debugger.jpda.JPDADebuggerImpl.evaluate(JPDADebuggerImpl.java:317)
at org.netbeans.modules.debugger.jpda.ui.models.InlineValueComputerImpl.lambda$refreshVariables$1(InlineValueComputerImpl.java:206)
at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1229)
at org.netbeans.modules.debugger.jpda.ui.models.InlineValueComputerImpl.lambda$refreshVariables$3(InlineValueComputerImpl.java:204)
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)
```

### Language / Project Type / NetBeans Component

java ant project

### How to reproduce

You just need to use NetBeans for a certain amount of time.

### Did this work correctly in an earlier version?

No / Don't know

### Operating System

Linux 6.4.0-150600.23.81-default #1 SMP PREEMPT_DYNAMIC

### JDK

Product Version: Apache NetBeans IDE 29 Java: 24.0.2; OpenJDK 64-Bit Server VM 24.0.2+12 Runtime: OpenJDK Runtime Environment 24.0.2+12

### Apache NetBeans packaging

Apache NetBeans binary zip

### Anything else

Sources are Java 8

### Are you willing to submit a pull request?

No

Contributor guide

Open the contributing guide

Research direction

The stack trace points through org.netbeans.modules.debugger.jpda.projects.PreferredCCParser, EditorContextSupport, and org.netbeans.lib.nbjavac.services.NBAttr; begin by reproducing the debugger expression evaluation that triggers it. Trace the Java 24 and Java 8-source path into Attr.attribClassBody and identify a stable trigger. Done means evaluation no longer raises AssertionError and the failure is covered by an appropriate debugger test.

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
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.