gradle / test-retry-gradle-plugin

Gradle plugin to retry tests that have failed to mitigate test flakiness.
Apache License 2.0
222 stars 50 forks source link

JDK 19 support #165

Closed yermilov closed 1 year ago

yermilov commented 1 year ago

Runs on JDK 19 fail with

Unsupported class file major version 63
java.lang.IllegalArgumentException: Unsupported class file major version 63
    at org.gradle.testretry.org.objectweb.asm.ClassReader.<init>(ClassReader.java:199)
    at org.gradle.testretry.org.objectweb.asm.ClassReader.<init>(ClassReader.java:180)
    at org.gradle.testretry.org.objectweb.asm.ClassReader.<init>(ClassReader.java:166)
    at org.gradle.testretry.org.objectweb.asm.ClassReader.<init>(ClassReader.java:287)
    at org.gradle.testretry.internal.testsreader.TestsReader.visit(TestsReader.java:72)
    at org.gradle.testretry.internal.testsreader.TestsReader.visitClassFile(TestsReader.java:65)
    at org.gradle.testretry.internal.testsreader.TestsReader.lambda$readTestClassDirClass$1(TestsReader.java:51)
    at java.base/java.util.Optional.map(Optional.java:260)
    at org.gradle.testretry.internal.testsreader.TestsReader.readTestClassDirClass(TestsReader.java:51)
    at org.gradle.testretry.internal.testsreader.TestsReader.readClass(TestsReader.java:55)
    at org.gradle.testretry.internal.filter.AnnotationInspectorImpl.getClassAnnotations(AnnotationInspectorImpl.java:46)
    at org.gradle.testretry.internal.filter.ClassRetryMatcher.retryWholeClass(ClassRetryMatcher.java:59)
    at org.gradle.testretry.internal.executer.RetryTestResultProcessor.addRetry(RetryTestResultProcessor.java:118)
    at org.gradle.testretry.internal.executer.RetryTestResultProcessor.failure(RetryTestResultProcessor.java:175)
    at org.gradle.testretry.internal.executer.RetryTestResultProcessor.failure(RetryTestResultProcessor.java:165)
    at org.gradle.api.internal.tasks.testing.results.AttachParentTestResultProcessor.failure(AttachParentTestResultProcessor.java:47)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)

This is caused by the plugin using ASM 9.2 (https://github.com/gradle/test-retry-gradle-plugin/blob/main/plugin/build.gradle.kts#L32). Upgrade to at least ASM 9.3 should fix it (but the latest version is 9.4)

yermilov commented 1 year ago

Thanks a lot @marcphilipp!