-
Notifications
You must be signed in to change notification settings - Fork 367
Description
PItest is failing from the command line when running against larger files, whereas the same file run from Maven works. The runtime error is:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 59575 out of bounds for length 43045
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.pitest.bytecode.analysis.ClassTree.fromBytes(ClassTree.java:39)
at org.pitest.classpath.DefaultCodeSource.lambda$codeTrees$1(DefaultCodeSource.java:35)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1602)
The cutoff point in terms of number of lines is about 900. That is, files smaller than that work in all cases but larger files fail when run from the command line.
An example run is with Flink's FineGrainedSlotManager which has 909 lines. The Maven configuration (that works) is standard:
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.20.2</version>
<configuration>
<targetClasses>
<param>org.apache.flink.runtime.resourcemanager.slotmanager.FineGrainedSlotManager</param>
</targetClasses>
<targetTests>
<param>org.apache.flink.runtime.resourcemanager.slotmanager.FineGrainedSlotManager.FineGrainedSlotManagerTest</param>
</targetTests>
</configuration>
</plugin>
I run in "verbose" mode in both Maven and command line but there is no discernible difference.
The command line (which fails) is as follows, though for readability I've broken out the classpath and filtered out most entries which have nothing to do with pitest:
/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=54711" -Dfile.encoding=UTF-8 -classpath
/Users/bpm/.m2/repository/org/pitest/pitest-command-line/1.20.2/pitest-command-line-1.20.2.jar:
/Users/bpm/.m2/repository/org/pitest/pitest-entry/1.20.2/pitest-entry-1.20.2.jar:
/Users/bpm/.m2/repository/org/pitest/pitest/1.20.2/pitest-1.20.2.jar:
/Users/bpm/.m2/repository/org/ow2/asm/asm-commons/9.8/asm-commons-9.8.jar:
/Users/bpm/.m2/repository/org/ow2/asm/asm/9.8/asm-9.8.jar:
/Users/bpm/.m2/repository/org/ow2/asm/asm-util/9.8/asm-util-9.8.jar:
/Users/bpm/.m2/repository/org/ow2/asm/asm-tree/9.8/asm-tree-9.8.jar:
/Users/bpm/.m2/repository/org/ow2/asm/asm-analysis/9.8/asm-analysis-9.8.jar:
/Users/bpm/.m2/repository/org/pitest/pitest-html-report/1.20.2/pitest-html-report-1.20.2.jar:
/Users/bpm/.m2/repository/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar:
/Users/bpm/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:
/Users/bpm/.m2/repository/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-4.9.jar:
/Users/bpm/.m2/repository/org/pitest/pitest-junit5-plugin/1.2.3/pitest-junit5-plugin-1.2.3.jar:
/Users/bpm/.m2/repository/org/junit/jupiter/junit-jupiter/5.11.4/junit-jupiter-5.11.4.jar:
/Users/bpm/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.4/junit-jupiter-params-5.11.4.jar:
/Users/bpm/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.11.4/junit-jupiter-engine-5.11.4.jar:
/Users/bpm/.m2/repository/org/junit/vintage/junit-vintage-engine/5.11.4/junit-vintage-engine-5.11.4.jar:
/Users/bpm/.m2/repository/org/junit/platform/junit-platform-engine/1.11.4/junit-platform-engine-1.11.4.jar:
/Users/bpm/.m2/repository/junit/junit/4.13.2/junit-4.13.2.jar:
/Users/bpm/Library/Application Support/JetBrains/IdeaIC2025.2/plugins/pitest-idea/lib/ifc-junit-jupiter-api/5.11.0/junit-platform-launcher-1.11.4.jar"
org.pitest.mutationtest.commandline.MutationCoverageReport
--reportDir /Users/bpm/dev/flink/flink-runtime/target/pit-idea-reports/org256633674 --targetClasses org.apache.flink.runtime.resourcemanager.slotmanager.FineGrainedSlotManager --targetTests org.apache.flink.runtime.resourcemanager.slotmanager.FineGrainedSlotManagerTest --mutableCodePaths /Users/bpm/dev/flink/flink-runtime/target/classes --sourceDirs /Users/bpm/dev/flink/flink-runtime/src/main/java --outputFormats XML,HTML --exportLineCoverage true
I've also tried increasing the heap size by adding --jvmArgs, but it makes no difference. Previous versions of PItest also had this issue.
Bug, or am I doing something wrong?