apache / apache/netbeans

Bug Report against outdated lexer's code

Open
#6,100 2 comments 0 reactions 0 assignees View on GitHub
Java kind:bug needs:triage
Dominant language
Java
Stars
3.1k
Forks
935
Avg merge
2d 3h
Merged PRs (30d)
17

Description

### Apache NetBeans version

Apache NetBeans 18

### What happened

There is a notification that is a bug. when I compile a Java code. I thinks the program itself suggest that i must report this lexer's code issue, I dont know about it but, It is a concern to its own compiling problem

![image](https://github.com/apache/netbeans/assets/118420755/ecff8f45-5654-43c9-85a4-edb1f3e3edff)

### How to reproduce

Just look at this type of code issue.

I just run some code that inolves connecting to mysql-connector php
I think It just want to notify that these codes are something obsolete or no longer valid and it needs to be reported.
Everytime I run the code related to JDBC mysql Connector. Then suddenly the suggestion pop out is always related to com.sun.source.

```
java.util.ConcurrentModificationException: Caller uses obsolete token sequence which is no longer valid. Underlying token hierarchy has been modified by insertion or removal or a custom language embedding was created.TS.modCount=4, tokenList.modCount()=5, rootModCount=5
Please report a bug against a module that calls lexer's code e.g. java, php etc. but not the lexer module itself.
at org.netbeans.api.lexer.TokenSequence.checkValid(TokenSequence.java:779)
at org.netbeans.api.lexer.TokenSequence.moveIndex(TokenSequence.java:563)
at org.netbeans.modules.java.editor.base.semantic.TokenList.resetToIndex(TokenList.java:372)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitMethodInvocation(SemanticHighlighterBase.java:781)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitMethodInvocation(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1833)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:316)
at com.sun.source.util.TreeScanner.visitExpressionStatement(TreeScanner.java:502)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitExpressionStatement(SemanticHighlighterBase.java:861)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitExpressionStatement(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1612)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:316)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:111)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:78)
at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:272)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1100)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitMethod(SemanticHighlighterBase.java:934)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitMethod(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:944)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:316)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:96)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:111)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:78)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitClass(SemanticHighlighterBase.java:1049)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitClass(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:851)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitNewClass(SemanticHighlighterBase.java:999)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitNewClass(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1894)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:316)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:111)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:78)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitMethodInvocation(SemanticHighlighterBase.java:770)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitMethodInvocation(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1833)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:316)
at com.sun.source.util.TreeScanner.visitExpressionStatement(TreeScanner.java:502)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitExpressionStatement(SemanticHighlighterBase.java:861)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitExpressionStatement(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1612)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:316)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:96)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:111)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:78)
at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:272)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1100)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitMethod(SemanticHighlighterBase.java:934)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitMethod(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:944)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:316)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:96)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:111)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:78)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitClass(SemanticHighlighterBase.java:1049)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitClass(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:851)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:316)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:111)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:78)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitCompilationUnit(SemanticHighlighterBase.java:597)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.visitCompilationUnit(SemanticHighlighterBase.java:316)
at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:619)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
at org.netbeans.api.java.source.support.CancellableTreePathScanner.scan(CancellableTreePathScanner.java:69)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase$DetectorVisitor.scan(SemanticHighlighterBase.java:1121)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase.process(SemanticHighlighterBase.java:200)
at org.netbeans.modules.java.editor.semantic.SemanticHighlighter.process(SemanticHighlighter.java:56)
at org.netbeans.modules.java.editor.base.semantic.SemanticHighlighterBase.run(SemanticHighlighterBase.java:154)
at org.netbeans.modules.parsing.impl.TaskProcessor.callParserResultTask(TaskProcessor.java:561)
[catch] at org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.run(TaskProcessor.java:786)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:288)
at org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.execute(TaskProcessor.java:702)
at org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:663)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1419)
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:2034)

```

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

No / Don't know

### Operating System

Windows 10 version 22h2

### JDK

JDK 17

### Apache NetBeans packaging

Apache NetBeans provided installer

### Anything else

It does occur when I import the mysql-connector for php database.

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

Yes

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the exception while compiling JDBC MySQL Connector code, then read TokenSequence.java, TokenList.java, and SemanticHighlighterBase.java at the stack-trace locations. Trace which Java editor operation invalidates the token sequence; done means the reported exception no longer appears for the reproducer and the responsible caller is identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, mysql
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.