Skip to content

Quarkus 3.18.1 can't find config inner classes during @QuarkusTest tests #50274

@Athou

Description

@Athou

Describe the bug

I have a CommaFeedConfiguration configuration class. Quarkus 3.28.1 cannot find its inner classes during tests annotated with @QuarkusTest

java.lang.ClassNotFoundException: com.commafeed.CommaFeedConfiguration$HttpClientCache

Expected behavior

Tests pass as they did with Quarkus 3.26.4

Actual behavior

Here's the stacktrace during the maven build :

[ERROR] Tests run: 4, Failures: 0, Errors: 1, Skipped: 3, Time elapsed: 5.043 s <<< FAILURE! -- in com.commafeed.e2e.AuthentificationIT
[ERROR] com.commafeed.e2e.AuthentificationIT.registerSuccess -- Time elapsed: 0.005 s <<< ERROR!
java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/commafeed/CommaFeedConfiguration$HttpClientCache
        at io.quarkus.test.junit.QuarkusTestExtension.throwBootFailureException(QuarkusTestExtension.java:666)
        at io.quarkus.test.junit.QuarkusTestExtension.interceptTestClassConstructor(QuarkusTestExtension.java:761)
        at java.base/java.util.Optional.orElseGet(Optional.java:364)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
Caused by: java.lang.NoClassDefFoundError: com/commafeed/CommaFeedConfiguration$HttpClientCache
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962)
        at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:566)
        at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:524)
        at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:577)
        at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:524)
        at io.quarkus.hibernate.validator.runtime.HibernateBeanValidationConfigValidatorBuilder.<clinit>(Unknown Source)
        at io.quarkus.runtime.generated.StaticInitConfig.configBuilder(Unknown Source)
        at io.quarkus.runtime.configuration.AbstractConfigBuilder.withCustomizer(AbstractConfigBuilder.java:117)
        at io.quarkus.runtime.generated.Config.<clinit>(Unknown Source)
        at io.quarkus.runner.ApplicationImpl.<clinit>(Unknown Source)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:547)
        at io.quarkus.runner.bootstrap.StartupActionImpl.run(StartupActionImpl.java:334)
        at io.quarkus.test.junit.QuarkusTestExtension.doJavaStart(QuarkusTestExtension.java:232)
        at io.quarkus.test.junit.QuarkusTestExtension.ensureStarted(QuarkusTestExtension.java:640)
        at io.quarkus.test.junit.QuarkusTestExtension.beforeAll(QuarkusTestExtension.java:685)
        ... 1 more
        Suppressed: java.lang.NoClassDefFoundError: Could not initialize class io.quarkus.runtime.generated.Config
                at java.base/java.lang.Class.forName0(Native Method)
                at java.base/java.lang.Class.forName(Class.java:547)
                at io.quarkus.runner.bootstrap.StartupActionImpl.run(StartupActionImpl.java:338)
                ... 4 more
        Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: com/commafeed/CommaFeedConfiguration$HttpClientCache [in thread "main"]
                at java.base/java.lang.ClassLoader.defineClass1(Native Method)
                at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962)
                at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:566)
                at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:524)
                at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:577)
                at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:524)
                at io.quarkus.hibernate.validator.runtime.HibernateBeanValidationConfigValidatorBuilder.<clinit>(Unknown Source)
                at io.quarkus.runtime.generated.StaticInitConfig.configBuilder(Unknown Source)
                at io.quarkus.runtime.configuration.AbstractConfigBuilder.withCustomizer(AbstractConfigBuilder.java:117)
                at io.quarkus.runtime.generated.Config.<clinit>(Unknown Source)
                at io.quarkus.runner.ApplicationImpl.<clinit>(Unknown Source)
                at java.base/java.lang.Class.forName0(Native Method)
                at java.base/java.lang.Class.forName(Class.java:547)
                at io.quarkus.runner.bootstrap.StartupActionImpl.run(StartupActionImpl.java:334)
                ... 4 more
Caused by: java.lang.ClassNotFoundException: com.commafeed.CommaFeedConfiguration$HttpClientCache
        at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:550)
        at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:524)
        ... 18 more

How to Reproduce?

Checkout this branch and run mvn clean install

Output of uname -a or ver

Microsoft Windows [Version 10.0.26100.6584]

Output of java -version

Java version: 17.0.11, vendor: Oracle Corporation

Quarkus version or git rev

3.28.1

Build tool (ie. output of mvnw --version or gradlew --version)

Apache Maven 3.9.11

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions