Skip to content

Crash on valid Java source file #423

Description

@kelloggm

Trying to reduce nullaway/nullaway #1238 via this command:

./gradlew run --args='--modularityModel nullaway --outputDirectory "/Users/mjk76/Research/specimin/playground/nullaway-1238-out" --root "/Users/mjk76/Research/specimin/playground/nullaway-1238/src/" --targetFile "org/chromium/chrome/browser/creator/CreatorMediator.java" --targetMethod "org.chromium.chrome.browser.creator.CreatorMediator#followClickHandler()"' -PskipCheckerFramework=true

results in a crash:

> Task :run FAILED
Exception in thread "main" java.lang.RuntimeException: Need to check this field access expression with isAnUnsolvedStaticFieldCalledByAQualifiedClassName before using this method
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.updateClassSetWithQualifiedFieldSignature(UnsolvedSymbolVisitor.java:3533)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.updateSyntheticClassWithNonStaticFields(UnsolvedSymbolVisitor.java:2364)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:1087)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
        at com.github.javaparser.ast.expr.FieldAccessExpr.accept(FieldAccessExpr.java:95)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:153)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
        at com.github.javaparser.ast.expr.BinaryExpr.accept(BinaryExpr.java:140)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:599)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
        at com.github.javaparser.ast.stmt.IfStmt.accept(IfStmt.java:83)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:1111)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
        at com.github.javaparser.ast.NodeList.accept(NodeList.java:275)
        at com.github.javaparser.ast.visitor.ModifierVisitor.modifyList(ModifierVisitor.java:1149)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:166)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:775)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
        at com.github.javaparser.ast.stmt.BlockStmt.accept(BlockStmt.java:71)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:1071)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:837)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
        at com.github.javaparser.ast.expr.LambdaExpr.accept(LambdaExpr.java:162)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:1111)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
        at com.github.javaparser.ast.NodeList.accept(NodeList.java:275)
        at com.github.javaparser.ast.visitor.ModifierVisitor.modifyList(ModifierVisitor.java:1149)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:642)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:1213)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
        at com.github.javaparser.ast.expr.MethodCallExpr.accept(MethodCallExpr.java:135)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:475)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
        at com.github.javaparser.ast.stmt.ExpressionStmt.accept(ExpressionStmt.java:72)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:1111)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
        at com.github.javaparser.ast.NodeList.accept(NodeList.java:275)
        at com.github.javaparser.ast.visitor.ModifierVisitor.modifyList(ModifierVisitor.java:1149)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:166)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:775)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
        at com.github.javaparser.ast.stmt.BlockStmt.accept(BlockStmt.java:71)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:607)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
        at com.github.javaparser.ast.stmt.IfStmt.accept(IfStmt.java:83)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:1111)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
        at com.github.javaparser.ast.NodeList.accept(NodeList.java:275)
        at com.github.javaparser.ast.visitor.ModifierVisitor.modifyList(ModifierVisitor.java:1149)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:166)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:775)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
        at com.github.javaparser.ast.stmt.BlockStmt.accept(BlockStmt.java:71)
        at com.github.javaparser.ast.visitor.ModifierVisitor.lambda$visit$60(ModifierVisitor.java:661)
        at java.base/java.util.Optional.map(Optional.java:260)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:661)
        at org.checkerframework.specimin.SpeciminStateVisitor.visit(SpeciminStateVisitor.java:187)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.processMethodDeclaration(UnsolvedSymbolVisitor.java:2128)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:1046)
        at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
        at com.github.javaparser.ast.body.MethodDeclaration.accept(MethodDeclaration.java:195)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:1111)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
        at com.github.javaparser.ast.NodeList.accept(NodeList.java:275)
        at com.github.javaparser.ast.visitor.ModifierVisitor.modifyList(ModifierVisitor.java:1149)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:239)
        at org.checkerframework.specimin.SpeciminStateVisitor.visit(SpeciminStateVisitor.java:216)
        at org.checkerframework.specimin.SpeciminStateVisitor.visit(SpeciminStateVisitor.java:33)
        at com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:152)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:1111)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
        at com.github.javaparser.ast.NodeList.accept(NodeList.java:275)
        at com.github.javaparser.ast.visitor.ModifierVisitor.modifyList(ModifierVisitor.java:1149)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:307)
        at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
        at com.github.javaparser.ast.CompilationUnit.accept(CompilationUnit.java:134)
        at org.checkerframework.specimin.SpeciminRunner.performMinimizationImpl(SpeciminRunner.java:305)
        at org.checkerframework.specimin.SpeciminRunner.performMinimization(SpeciminRunner.java:164)
        at org.checkerframework.specimin.SpeciminRunner.main(SpeciminRunner.java:91)

FAILURE: Build failed with an exception.

Input file is here: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/creator/android/java/src/org/chromium/chrome/browser/creator/CreatorMediator.java?q=symbol:%5Cborg.chromium.chrome.browser.creator.CreatorMediator.followClickHandler%5Cb%20case:yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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