[ https://issues.apache.org/jira/browse/GROOVY-9405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James Kleeh updated GROOVY-9405: -------------------------------- Description: Junit5 fails to process closures as annotation member values in package-info.groovy. This worked in Groovy 2.5 / Junit4 {{Caused by: java.lang.IncompatibleClassChangeError: io.micronaut.inject.configurations.requirescondition.package-info and io.micronaut.inject.configurations.requirescondition.package-info$_closure1 disagree on InnerClasses attribute at java.lang.Class.getDeclaringClass0(Native Method) at java.lang.Class.getDeclaringClass(Class.java:1235) at java.lang.Class.getEnclosingClass(Class.java:1277) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.isInnerClass(JUnitPlatformTestClassProcessor.java:104) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.access$200(JUnitPlatformTestClassProcessor.java:54) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:90) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:79) at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)}} The package info is related to Micronaut {{@Configuration}} {{ @Requires(condition = \{ ConditionContext context -> true })}} {{ package io.micronaut.inject.configurations.requirescondition2}} {{import io.micronaut.context.annotation.Configuration}} {{ import io.micronaut.context.annotation.Requires}} {{ import io.micronaut.context.condition.ConditionContext}} I'll try to create a sample application here shortly I was able to work around the issue by adding {{test {}} {{ exclude '**/*$_closure*'}} {{}}} to my build.gradle was: Junit5 fails to process closures as annotation member values in package-info.groovy ``` Caused by: java.lang.IncompatibleClassChangeError: io.micronaut.inject.configurations.requirescondition.package-info and io.micronaut.inject.configurations.requirescondition.package-info$_closure1 disagree on InnerClasses attribute at java.lang.Class.getDeclaringClass0(Native Method) at java.lang.Class.getDeclaringClass(Class.java:1235) at java.lang.Class.getEnclosingClass(Class.java:1277) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.isInnerClass(JUnitPlatformTestClassProcessor.java:104) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.access$200(JUnitPlatformTestClassProcessor.java:54) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:90) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:79) at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) ``` The package info is related to Micronaut ``` @Configuration @Requires(condition = \{ ConditionContext context -> true }) package io.micronaut.inject.configurations.requirescondition2 import io.micronaut.context.annotation.Configuration import io.micronaut.context.annotation.Requires import io.micronaut.context.condition.ConditionContext ``` I'll try to create a sample application here shortly > Junit 5 IncompatibleClassChangeError > ------------------------------------ > > Key: GROOVY-9405 > URL: https://issues.apache.org/jira/browse/GROOVY-9405 > Project: Groovy > Issue Type: Bug > Components: groovy-test-junit5 > Affects Versions: 3.0.1 > Reporter: James Kleeh > Priority: Major > > Junit5 fails to process closures as annotation member values in > package-info.groovy. This worked in Groovy 2.5 / Junit4 > > {{Caused by: java.lang.IncompatibleClassChangeError: > io.micronaut.inject.configurations.requirescondition.package-info and > io.micronaut.inject.configurations.requirescondition.package-info$_closure1 > disagree on InnerClasses attribute at > java.lang.Class.getDeclaringClass0(Native Method) at > java.lang.Class.getDeclaringClass(Class.java:1235) at > java.lang.Class.getEnclosingClass(Class.java:1277) at > org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.isInnerClass(JUnitPlatformTestClassProcessor.java:104) > at > org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.access$200(JUnitPlatformTestClassProcessor.java:54) > at > org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:90) > at > org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:79) > at > org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) > at > org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)}} > > The package info is related to Micronaut > > {{@Configuration}} > {{ @Requires(condition = \{ ConditionContext context -> true })}} > {{ package io.micronaut.inject.configurations.requirescondition2}} > {{import io.micronaut.context.annotation.Configuration}} > {{ import io.micronaut.context.annotation.Requires}} > {{ import io.micronaut.context.condition.ConditionContext}} > > I'll try to create a sample application here shortly > > I was able to work around the issue by adding > > {{test {}} > {{ exclude '**/*$_closure*'}} > {{}}} > > to my build.gradle -- This message was sent by Atlassian Jira (v8.3.4#803005)