Refactoring NPE `Cannot read field "flags" because "x0" is null`
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 935
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 17
Description
### Apache NetBeans version
Apache NetBeans 17
### What happened
Today when I go to run refactorings (tried both rename and inline) the refactoring dialog just claims there is an error. In the log:
```
java.lang.NullPointerException: Cannot read field "flags" because "x0" is null
at org.netbeans.modules.parsing.api.Source.access$300(Source.java:99)
at org.netbeans.modules.parsing.api.Source$MySourceAccessor.invalidate(Source.java:632)
at org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:174)
at org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:85)
at org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:454)
at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:425)
at org.netbeans.api.java.source.JavaSource.runModificationTask(JavaSource.java:686)
at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:323)
at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:264)
at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:246)
at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.createAndAddElements(JavaRefactoringPlugin.java:338)
at org.netbeans.modules.refactoring.java.plugins.InlineRefactoringPlugin.prepare(InlineRefactoringPlugin.java:103)
[catch] at org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare2(AbstractRefactoring.java:417)
at org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare(AbstractRefactoring.java:401)
at org.netbeans.modules.refactoring.api.AbstractRefactoring.prepare(AbstractRefactoring.java:212)
at org.netbeans.modules.refactoring.spi.impl.ParametersPanel$12.run(ParametersPanel.java:654)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
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:2033)
```
No other obviously related errors.
### How to reproduce
Unknown, but at least the problem should be caught and reported earlier in the call stack.
### Did this work correctly in an earlier version?
No / Don't know
### Operating System
(X)Ubuntu 22.04
### JDK
Java 17
### Apache NetBeans packaging
Apache NetBeans Snap Package
### Anything else
Find Usages is working normally.
### Are you willing to submit a pull request?
Yes
Contributor guide
Research direction
Start with the reported stack trace in Source.java, TaskProcessor.java, JavaSource.java, and JavaRefactoringPlugin.java, then inspect InlineRefactoringPlugin.prepare. Try the rename and inline refactorings on the reported NetBeans 17 setup, noting that Find Usages works normally. Done means the null-pointer failure is caught and reported earlier rather than surfacing as the shown exception.
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
- 35/100