IllegalStateException in FieldCanBeFinal due to suggested fix
- Dominant language
- Java
- Stars
- 7.2k
- Forks
- 820
- Avg merge
- 5h 9m
- Merged PRs (30d)
- 50
Description
Summary:
```plaintext
JDK: 26 (26+35-2893)
error-prone version: 2.49.0
BugPattern: FieldCanBeFinal
Stack Trace:
java.lang.IllegalStateException: java.lang.IllegalArgumentException: /C:/Users/antho/path/to/Foo.java
```
The root cause is thrown from [`JavacFileManager`](https://github.com/openjdk/jdk/blob/aece6f483250d14af3c8a728de6817bb98f10436/src/jdk.compiler/share/classes/com/sun/tools/javac/file/JavacFileManager.java#L1211).
Code:
```java
package my.package;
class Foo {
private int bar;
Foo(int bar) {
this.bar = bar;
}
}
```
Stack trace:
```plaintext
java.lang.IllegalStateException: java.lang.IllegalArgumentException: /C:/Users/antho/path/to/Foo.java
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:383)
at com.google.errorprone.fixes.SuggestedFixes$FixCompiler.compile(SuggestedFixes.java:1435)
at com.google.errorprone.fixes.SuggestedFixes.compilesWithFix(SuggestedFixes.java:1362)
at com.google.errorprone.fixes.SuggestedFixes.compilesWithFix(SuggestedFixes.java:1322)
at com.google.errorprone.fixes.SuggestedFixes.compilesWithFix(SuggestedFixes.java:1304)
at com.google.errorprone.bugpatterns.FieldCanBeFinal.lambda$matchCompilationUnit$1(FieldCanBeFinal.java:249)
at java.base/java.util.Optional.filter(Optional.java:222)
at com.google.errorprone.bugpatterns.FieldCanBeFinal.matchCompilationUnit(FieldCanBeFinal.java:249)
at com.google.errorprone.scanner.ErrorProneScanner.processMatchers(ErrorProneScanner.java:541)
at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:658)
at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:180)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:634)
at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:66)
at com.google.errorprone.scanner.Scanner.scan(Scanner.java:58)
at com.google.errorprone.scanner.ErrorProneScannerTransformer.apply(ErrorProneScannerTransformer.java:43)
at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:231)
at jdk.compiler/com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:133)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1437)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1384)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:969)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:319)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:178)
at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:66)
at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:52)
Caused by: java.lang.IllegalArgumentException: /C:/Users/antho/path/to/Foo.java
at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.asPath(JavacFileManager.java:1211)
at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.contains(JavacFileManager.java:1137)
at jdk.compiler/com.sun.tools.javac.main.DelegatingJavaFileManager.contains(DelegatingJavaFileManager.java:184)
at jdk.compiler/com.sun.tools.javac.main.DelegatingJavaFileManager.contains(DelegatingJavaFileManager.java:184)
at jdk.compiler/com.sun.tools.javac.comp.Modules.checkSourceLocation(Modules.java:551)
at jdk.compiler/com.sun.tools.javac.comp.Modules.setCompilationUnitModules(Modules.java:541)
at jdk.compiler/com.sun.tools.javac.comp.Modules.enter(Modules.java:273)
at jdk.compiler/com.sun.tools.javac.comp.Modules.initModules(Modules.java:232)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.initModules(JavaCompiler.java:1061)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:342)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:399)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$analyze$0(JavacTaskImpl.java:379)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:379)
... 23 more
```
Contributor guide
Assessment
This issue has not been assessed yet.