google / google/error-prone

IllegalStateException in FieldCanBeFinal due to suggested fix

Open
#5,727 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.