I have uncovered the following crash while running ashe/specimin on a large set of inputs. The branch OOB-report contains a test "stringindexoob" that replicates this crash.
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 5 out of bounds for length 5
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)
at java.base/java.util.Objects.checkIndex(Objects.java:365)
at java.base/java.util.ArrayList.get(ArrayList.java:428)
at java.base/java.util.Collections$UnmodifiableList.get(Collections.java:1502)
at org.checkerframework.specimin.UnsolvedSymbolVisitor.updateClassSetWithStaticMethodCall(UnsolvedSymbolVisitor.java:3440)
at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:1165)
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.lambda$visit$100(ModifierVisitor.java:1020)
at java.base/java.util.Optional.map(Optional.java:260)
at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:1020)
at org.checkerframework.specimin.SpeciminStateVisitor.visit(SpeciminStateVisitor.java:177)
at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:924)
at org.checkerframework.specimin.UnsolvedSymbolVisitor.visit(UnsolvedSymbolVisitor.java:106)
at com.github.javaparser.ast.body.VariableDeclarator.accept(VariableDeclarator.java:153)
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:1007)
at com.github.javaparser.ast.visitor.ModifierVisitor.visit(ModifierVisitor.java:52)
at com.github.javaparser.ast.expr.VariableDeclarationExpr.accept(VariableDeclarationExpr.java:131)
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 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)
I have uncovered the following crash while running ashe/specimin on a large set of inputs. The branch OOB-report contains a test "stringindexoob" that replicates this crash.