Skip to content

IllegalStateException in FieldCanBeFinal due to suggested fix #5727

@anthonyvdotbe

Description

@anthonyvdotbe

Summary:

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.

Code:

package my.package;

class Foo {

    private int bar;

    Foo(int bar) {
        this.bar = bar;
    }
}

Stack trace:

   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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions