Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@DisabledInAotMode does not work in native image #31705

Closed
edeandrea opened this issue Nov 27, 2023 · 16 comments
Closed

@DisabledInAotMode does not work in native image #31705

edeandrea opened this issue Nov 27, 2023 · 16 comments
Assignees
Labels
in: test Issues in the test module theme: aot An issue related to Ahead-of-time processing type: bug A general bug
Milestone

Comments

@edeandrea
Copy link
Contributor

I have an application that runs ./mvnw clean verify -PnativeTest. It has been running fine on Spring Boot 3.1.5. Today I upgraded it to 3.2.0 and that same test is now failing. This is my current environment:

Apache Maven 3.9.3 (21122926829f1ead511c958d89bd2f672198ae9f)
Java version: 17.0.9, vendor: GraalVM Community, runtime: /Users/edeandre/.sdkman/candidates/java/17.0.9-graalce
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.1.1", arch: "aarch64", family: "mac"

The application can be found at https://github.com/edeandrea/summit-lab-spring-music. The PR that is failing is at edeandrea/summit-lab-spring-music#15.

This is the error I'm getting:

Error: Classes that should be initialized at run time got initialized during image building:
 org.springframework.aot.AotDetector was unintentionally initialized at build time. To see why org.springframework.aot.AotDetector got initialized use --trace-class-initialization=org.springframework.aot.AotDetector
org.springframework.core.NativeDetector was unintentionally initialized at build time. To see why org.springframework.core.NativeDetector got initialized use --trace-class-initialization=org.springframework.core.NativeDetector
To see how the classes got initialized, use --trace-class-initialization=org.springframework.aot.AotDetector,org.springframework.core.NativeDetector
Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception

This is an abridged log (the whole thing can be seen on https://github.com/edeandrea/summit-lab-spring-music/actions/runs/7007454530/job/19061577893?pr=15):

╰─ ./mvnw clean verify -PnativeTest

[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 10, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- native:0.9.28:test (native-test) @ summit-lab-spring-music ---
[INFO] ====================
[INFO] Initializing project: summit-lab-spring-music
[INFO] ====================
[INFO] Found GraalVM installation from GRAALVM_HOME variable.
[INFO] Downloaded GraalVM reachability metadata repository from file:/Users/edeandre/.m2/repository/org/graalvm/buildtools/graalvm-reachability-metadata/0.9.28/graalvm-reachability-metadata-0.9.28-repository.zip
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.11]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.11]: Configuration directory is ch.qos.logback/logback-classic/1.4.1
[INFO] [graalvm reachability metadata repository for com.fasterxml.jackson.core:jackson-databind:2.15.3]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for com.fasterxml.jackson.core:jackson-databind:2.15.3]: Configuration directory is com.fasterxml.jackson.core/jackson-databind/2.15.2
[INFO] [graalvm reachability metadata repository for io.undertow:undertow-core:2.3.10.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.undertow:undertow-core:2.3.10.Final]: Configuration directory is io.undertow/undertow-core/2.2.19.Final
[INFO] [graalvm reachability metadata repository for org.jboss.logging:jboss-logging:3.5.3.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.jboss.logging:jboss-logging:3.5.3.Final]: Configuration directory is org.jboss.logging/jboss-logging/3.5.0.Final
[INFO] [graalvm reachability metadata repository for jakarta.servlet:jakarta.servlet-api:6.0.0]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for jakarta.servlet:jakarta.servlet-api:6.0.0]: Configuration directory is jakarta.servlet/jakarta.servlet-api/5.0.0
[INFO] [graalvm reachability metadata repository for org.hibernate.validator:hibernate-validator:8.0.1.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.hibernate.validator:hibernate-validator:8.0.1.Final]: Latest version not found!
[INFO] [graalvm reachability metadata repository for org.hibernate.validator:hibernate-validator:8.0.1.Final]: missing.
[INFO] [graalvm reachability metadata repository for org.hibernate.validator:hibernate-validator:8.0.1.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.hibernate.validator:hibernate-validator:8.0.1.Final]: Configuration directory is org.hibernate.validator/hibernate-validator/7.0.4.Final
[INFO] [graalvm reachability metadata repository for com.zaxxer:HikariCP:5.0.1]: Configuration directory is com.zaxxer/HikariCP/5.0.1
[INFO] [graalvm reachability metadata repository for org.hibernate.orm:hibernate-core:6.3.1.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.hibernate.orm:hibernate-core:6.3.1.Final]: Configuration directory is org.hibernate.orm/hibernate-core/6.2.0.Final
[INFO] [graalvm reachability metadata repository for org.glassfish.jaxb:jaxb-runtime:4.0.4]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.glassfish.jaxb:jaxb-runtime:4.0.4]: Configuration directory is org.glassfish.jaxb/jaxb-runtime/3.0.2
[INFO] [graalvm reachability metadata repository for org.jetbrains.kotlin:kotlin-stdlib:1.9.20]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.jetbrains.kotlin:kotlin-stdlib:1.9.20]: Configuration directory is org.jetbrains.kotlin/kotlin-stdlib/1.7.10
[INFO] [graalvm reachability metadata repository for org.apache.commons:commons-compress:1.22]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.apache.commons:commons-compress:1.22]: Configuration directory is org.apache.commons/commons-compress/1.23.0
[INFO] [graalvm reachability metadata repository for com.github.ben-manes.caffeine:caffeine:3.1.8]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for com.github.ben-manes.caffeine:caffeine:3.1.8]: Configuration directory is com.github.ben-manes.caffeine/caffeine/3.1.2
[INFO] [graalvm reachability metadata repository for org.hdrhistogram:HdrHistogram:2.1.12]: Configuration directory is org.hdrhistogram/HdrHistogram/2.1.12
[INFO] [graalvm reachability metadata repository for com.h2database:h2:2.2.224]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for com.h2database:h2:2.2.224]: Configuration directory is com.h2database/h2/2.1.210
[INFO] [graalvm reachability metadata repository for org.postgresql:postgresql:42.6.0]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.postgresql:postgresql:42.6.0]: Configuration directory is org.postgresql/postgresql/42.3.4
[INFO] [graalvm reachability metadata repository for com.mysql:mysql-connector-j:8.1.0]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for com.mysql:mysql-connector-j:8.1.0]: Configuration directory is com.mysql/mysql-connector-j/8.0.31
[INFO] [graalvm reachability metadata repository for org.mockito:mockito-core:5.7.0]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.mockito:mockito-core:5.7.0]: Configuration directory is org.mockito/mockito-core/4.8.1
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.101.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.101.Final]: Configuration directory is io.netty/netty-codec-http/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.101.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.101.Final]: Configuration directory is io.netty/netty-common/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.101.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.101.Final]: Configuration directory is io.netty/netty-buffer/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.101.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.101.Final]: Configuration directory is io.netty/netty-transport/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.101.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.101.Final]: Configuration directory is io.netty/netty-handler/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.101.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.101.Final]: Configuration directory is io.netty/netty-codec-http2/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-resolver-dns:4.1.101.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-resolver-dns:4.1.101.Final]: Configuration directory is io.netty/netty-resolver-dns/4.1.80.Final
[INFO] Executing: /Users/edeandre/.sdkman/candidates/java/17.0.9-graalce/bin/native-image -cp /Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/classes:/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/test-classes:/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/src/test/resources:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-web/3.2.0/spring-boot-starter-web-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter/3.2.0/spring-boot-starter-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot/3.2.0/spring-boot-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.2.0/spring-boot-autoconfigure-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-logging/3.2.0/spring-boot-starter-logging-3.2.0.jar:/Users/edeandre/.m2/repository/ch/qos/logback/logback-classic/1.4.11/logback-classic-1.4.11.jar:/Users/edeandre/.m2/repository/ch/qos/logback/logback-core/1.4.11/logback-core-1.4.11.jar:/Users/edeandre/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.21.1/log4j-to-slf4j-2.21.1.jar:/Users/edeandre/.m2/repository/org/apache/logging/log4j/log4j-api/2.21.1/log4j-api-2.21.1.jar:/Users/edeandre/.m2/repository/org/slf4j/jul-to-slf4j/2.0.9/jul-to-slf4j-2.0.9.jar:/Users/edeandre/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/Users/edeandre/.m2/repository/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-json/3.2.0/spring-boot-starter-json-3.2.0.jar:/Users/edeandre/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.15.3/jackson-databind-2.15.3.jar:/Users/edeandre/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.15.3/jackson-annotations-2.15.3.jar:/Users/edeandre/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.15.3/jackson-core-2.15.3.jar:/Users/edeandre/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.15.3/jackson-datatype-jdk8-2.15.3.jar:/Users/edeandre/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.3/jackson-datatype-jsr310-2.15.3.jar:/Users/edeandre/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.15.3/jackson-module-parameter-names-2.15.3.jar:/Users/edeandre/.m2/repository/org/springframework/spring-web/6.1.1/spring-web-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-beans/6.1.1/spring-beans-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-webmvc/6.1.1/spring-webmvc-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-aop/6.1.1/spring-aop-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-context/6.1.1/spring-context-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-expression/6.1.1/spring-expression-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-undertow/3.2.0/spring-boot-starter-undertow-3.2.0.jar:/Users/edeandre/.m2/repository/io/undertow/undertow-core/2.3.10.Final/undertow-core-2.3.10.Final.jar:/Users/edeandre/.m2/repository/org/jboss/logging/jboss-logging/3.5.3.Final/jboss-logging-3.5.3.Final.jar:/Users/edeandre/.m2/repository/org/jboss/xnio/xnio-api/3.8.8.Final/xnio-api-3.8.8.Final.jar:/Users/edeandre/.m2/repository/org/wildfly/common/wildfly-common/1.5.4.Final/wildfly-common-1.5.4.Final.jar:/Users/edeandre/.m2/repository/org/wildfly/client/wildfly-client-config/1.0.1.Final/wildfly-client-config-1.0.1.Final.jar:/Users/edeandre/.m2/repository/org/jboss/xnio/xnio-nio/3.8.8.Final/xnio-nio-3.8.8.Final.jar:/Users/edeandre/.m2/repository/org/jboss/threads/jboss-threads/3.5.0.Final/jboss-threads-3.5.0.Final.jar:/Users/edeandre/.m2/repository/io/undertow/undertow-servlet/2.3.10.Final/undertow-servlet-2.3.10.Final.jar:/Users/edeandre/.m2/repository/jakarta/servlet/jakarta.servlet-api/6.0.0/jakarta.servlet-api-6.0.0.jar:/Users/edeandre/.m2/repository/io/undertow/undertow-websockets-jsr/2.3.10.Final/undertow-websockets-jsr-2.3.10.Final.jar:/Users/edeandre/.m2/repository/jakarta/websocket/jakarta.websocket-api/2.1.1/jakarta.websocket-api-2.1.1.jar:/Users/edeandre/.m2/repository/jakarta/websocket/jakarta.websocket-client-api/2.1.1/jakarta.websocket-client-api-2.1.1.jar:/Users/edeandre/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.16/tomcat-embed-el-10.1.16.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/3.2.0/spring-boot-starter-actuator-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-actuator-autoconfigure/3.2.0/spring-boot-actuator-autoconfigure-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-actuator/3.2.0/spring-boot-actuator-3.2.0.jar:/Users/edeandre/.m2/repository/io/micrometer/micrometer-observation/1.12.0/micrometer-observation-1.12.0.jar:/Users/edeandre/.m2/repository/io/micrometer/micrometer-commons/1.12.0/micrometer-commons-1.12.0.jar:/Users/edeandre/.m2/repository/io/micrometer/micrometer-jakarta9/1.12.0/micrometer-jakarta9-1.12.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-validation/3.2.0/spring-boot-starter-validation-3.2.0.jar:/Users/edeandre/.m2/repository/org/hibernate/validator/hibernate-validator/8.0.1.Final/hibernate-validator-8.0.1.Final.jar:/Users/edeandre/.m2/repository/jakarta/validation/jakarta.validation-api/3.0.2/jakarta.validation-api-3.0.2.jar:/Users/edeandre/.m2/repository/com/fasterxml/classmate/1.6.0/classmate-1.6.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/3.2.0/spring-boot-starter-data-jpa-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-aop/3.2.0/spring-boot-starter-aop-3.2.0.jar:/Users/edeandre/.m2/repository/org/aspectj/aspectjweaver/1.9.20.1/aspectjweaver-1.9.20.1.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/3.2.0/spring-boot-starter-jdbc-3.2.0.jar:/Users/edeandre/.m2/repository/com/zaxxer/HikariCP/5.0.1/HikariCP-5.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-jdbc/6.1.1/spring-jdbc-6.1.1.jar:/Users/edeandre/.m2/repository/org/hibernate/orm/hibernate-core/6.3.1.Final/hibernate-core-6.3.1.Final.jar:/Users/edeandre/.m2/repository/jakarta/persistence/jakarta.persistence-api/3.1.0/jakarta.persistence-api-3.1.0.jar:/Users/edeandre/.m2/repository/jakarta/transaction/jakarta.transaction-api/2.0.1/jakarta.transaction-api-2.0.1.jar:/Users/edeandre/.m2/repository/org/hibernate/common/hibernate-commons-annotations/6.0.6.Final/hibernate-commons-annotations-6.0.6.Final.jar:/Users/edeandre/.m2/repository/io/smallrye/jandex/3.1.2/jandex-3.1.2.jar:/Users/edeandre/.m2/repository/net/bytebuddy/byte-buddy/1.14.10/byte-buddy-1.14.10.jar:/Users/edeandre/.m2/repository/org/glassfish/jaxb/jaxb-runtime/4.0.4/jaxb-runtime-4.0.4.jar:/Users/edeandre/.m2/repository/org/glassfish/jaxb/jaxb-core/4.0.4/jaxb-core-4.0.4.jar:/Users/edeandre/.m2/repository/org/eclipse/angus/angus-activation/2.0.1/angus-activation-2.0.1.jar:/Users/edeandre/.m2/repository/org/glassfish/jaxb/txw2/4.0.4/txw2-4.0.4.jar:/Users/edeandre/.m2/repository/com/sun/istack/istack-commons-runtime/4.1.2/istack-commons-runtime-4.1.2.jar:/Users/edeandre/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/Users/edeandre/.m2/repository/org/antlr/antlr4-runtime/4.10.1/antlr4-runtime-4.10.1.jar:/Users/edeandre/.m2/repository/org/springframework/data/spring-data-jpa/3.2.0/spring-data-jpa-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/data/spring-data-commons/3.2.0/spring-data-commons-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/spring-orm/6.1.1/spring-orm-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-tx/6.1.1/spring-tx-6.1.1.jar:/Users/edeandre/.m2/repository/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar:/Users/edeandre/.m2/repository/org/springframework/spring-aspects/6.1.1/spring-aspects-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/cloud/spring-cloud-starter-kubernetes-client-config/3.1.0-RC1/spring-cloud-starter-kubernetes-client-config-3.1.0-RC1.jar:/Users/edeandre/.m2/repository/org/springframework/cloud/spring-cloud-kubernetes-client-config/3.1.0-RC1/spring-cloud-kubernetes-client-config-3.1.0-RC1.jar:/Users/edeandre/.m2/repository/org/springframework/cloud/spring-cloud-kubernetes-client-autoconfig/3.1.0-RC1/spring-cloud-kubernetes-client-autoconfig-3.1.0-RC1.jar:/Users/edeandre/.m2/repository/org/springframework/cloud/spring-cloud-kubernetes-commons/3.1.0-RC1/spring-cloud-kubernetes-commons-3.1.0-RC1.jar:/Users/edeandre/.m2/repository/org/springframework/cloud/spring-cloud-commons/4.1.0-RC1/spring-cloud-commons-4.1.0-RC1.jar:/Users/edeandre/.m2/repository/org/springframework/security/spring-security-crypto/6.2.0/spring-security-crypto-6.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/cloud/spring-cloud-context/4.1.0-RC1/spring-cloud-context-4.1.0-RC1.jar:/Users/edeandre/.m2/repository/io/kubernetes/client-java/17.0.2/client-java-17.0.2.jar:/Users/edeandre/.m2/repository/io/prometheus/simpleclient_httpserver/0.16.0/simpleclient_httpserver-0.16.0.jar:/Users/edeandre/.m2/repository/io/kubernetes/client-java-api/17.0.2/client-java-api-17.0.2.jar:/Users/edeandre/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/Users/edeandre/.m2/repository/io/swagger/swagger-annotations/1.6.9/swagger-annotations-1.6.9.jar:/Users/edeandre/.m2/repository/com/squareup/okhttp3/okhttp/4.12.0/okhttp-4.12.0.jar:/Users/edeandre/.m2/repository/com/squareup/okio/okio/3.6.0/okio-3.6.0.jar:/Users/edeandre/.m2/repository/com/squareup/okio/okio-jvm/3.6.0/okio-jvm-3.6.0.jar:/Users/edeandre/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.20/kotlin-stdlib-common-1.9.20.jar:/Users/edeandre/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.20/kotlin-stdlib-jdk8-1.9.20.jar:/Users/edeandre/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.20/kotlin-stdlib-1.9.20.jar:/Users/edeandre/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/edeandre/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.20/kotlin-stdlib-jdk7-1.9.20.jar:/Users/edeandre/.m2/repository/com/squareup/okhttp3/logging-interceptor/4.12.0/logging-interceptor-4.12.0.jar:/Users/edeandre/.m2/repository/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar:/Users/edeandre/.m2/repository/io/gsonfire/gson-fire/1.8.5/gson-fire-1.8.5.jar:/Users/edeandre/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/Users/edeandre/.m2/repository/io/kubernetes/client-java-proto/17.0.2/client-java-proto-17.0.2.jar:/Users/edeandre/.m2/repository/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar:/Users/edeandre/.m2/repository/org/apache/commons/commons-compress/1.22/commons-compress-1.22.jar:/Users/edeandre/.m2/repository/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar:/Users/edeandre/.m2/repository/org/bouncycastle/bcpkix-jdk18on/1.72/bcpkix-jdk18on-1.72.jar:/Users/edeandre/.m2/repository/org/bouncycastle/bcprov-jdk18on/1.72/bcprov-jdk18on-1.72.jar:/Users/edeandre/.m2/repository/org/bouncycastle/bcutil-jdk18on/1.72/bcutil-jdk18on-1.72.jar:/Users/edeandre/.m2/repository/com/google/protobuf/protobuf-java/3.21.10/protobuf-java-3.21.10.jar:/Users/edeandre/.m2/repository/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4.jar:/Users/edeandre/.m2/repository/org/bitbucket/b_c/jose4j/0.9.2/jose4j-0.9.2.jar:/Users/edeandre/.m2/repository/io/kubernetes/client-java-extended/17.0.2/client-java-extended-17.0.2.jar:/Users/edeandre/.m2/repository/io/kubernetes/client-java-api-fluent/17.0.2/client-java-api-fluent-17.0.2.jar:/Users/edeandre/.m2/repository/com/github/vladimir-bukhtoyarov/bucket4j-core/7.6.0/bucket4j-core-7.6.0.jar:/Users/edeandre/.m2/repository/com/flipkart/zjsonpatch/zjsonpatch/0.4.13/zjsonpatch-0.4.13.jar:/Users/edeandre/.m2/repository/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.jar:/Users/edeandre/.m2/repository/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.jar:/Users/edeandre/.m2/repository/org/springframework/cloud/spring-cloud-starter/4.1.0-RC1/spring-cloud-starter-4.1.0-RC1.jar:/Users/edeandre/.m2/repository/org/springframework/security/spring-security-rsa/1.1.1/spring-security-rsa-1.1.1.jar:/Users/edeandre/.m2/repository/io/micrometer/micrometer-registry-prometheus/1.12.0/micrometer-registry-prometheus-1.12.0.jar:/Users/edeandre/.m2/repository/io/micrometer/micrometer-core/1.12.0/micrometer-core-1.12.0.jar:/Users/edeandre/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar:/Users/edeandre/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/Users/edeandre/.m2/repository/io/prometheus/simpleclient_common/0.16.0/simpleclient_common-0.16.0.jar:/Users/edeandre/.m2/repository/io/prometheus/simpleclient/0.16.0/simpleclient-0.16.0.jar:/Users/edeandre/.m2/repository/io/prometheus/simpleclient_tracer_otel/0.16.0/simpleclient_tracer_otel-0.16.0.jar:/Users/edeandre/.m2/repository/io/prometheus/simpleclient_tracer_common/0.16.0/simpleclient_tracer_common-0.16.0.jar:/Users/edeandre/.m2/repository/io/prometheus/simpleclient_tracer_otel_agent/0.16.0/simpleclient_tracer_otel_agent-0.16.0.jar:/Users/edeandre/.m2/repository/org/apache/commons/commons-lang3/3.14.0/commons-lang3-3.14.0.jar:/Users/edeandre/.m2/repository/org/springdoc/springdoc-openapi-ui/1.7.0/springdoc-openapi-ui-1.7.0.jar:/Users/edeandre/.m2/repository/org/springdoc/springdoc-openapi-webmvc-core/1.7.0/springdoc-openapi-webmvc-core-1.7.0.jar:/Users/edeandre/.m2/repository/org/springdoc/springdoc-openapi-common/1.7.0/springdoc-openapi-common-1.7.0.jar:/Users/edeandre/.m2/repository/io/swagger/core/v3/swagger-core/2.2.9/swagger-core-2.2.9.jar:/Users/edeandre/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.15.3/jackson-dataformat-yaml-2.15.3.jar:/Users/edeandre/.m2/repository/io/swagger/core/v3/swagger-annotations/2.2.9/swagger-annotations-2.2.9.jar:/Users/edeandre/.m2/repository/io/swagger/core/v3/swagger-models/2.2.9/swagger-models-2.2.9.jar:/Users/edeandre/.m2/repository/org/webjars/swagger-ui/4.18.2/swagger-ui-4.18.2.jar:/Users/edeandre/.m2/repository/com/h2database/h2/2.2.224/h2-2.2.224.jar:/Users/edeandre/.m2/repository/org/postgresql/postgresql/42.6.0/postgresql-42.6.0.jar:/Users/edeandre/.m2/repository/org/checkerframework/checker-qual/3.31.0/checker-qual-3.31.0.jar:/Users/edeandre/.m2/repository/com/mysql/mysql-connector-j/8.1.0/mysql-connector-j-8.1.0.jar:/Users/edeandre/.m2/repository/org/webjars/bootstrap/3.1.1/bootstrap-3.1.1.jar:/Users/edeandre/.m2/repository/org/webjars/angularjs/1.2.16/angularjs-1.2.16.jar:/Users/edeandre/.m2/repository/org/webjars/angular-ui/0.4.0-2/angular-ui-0.4.0-2.jar:/Users/edeandre/.m2/repository/org/webjars/angular-ui-bootstrap/0.10.0-1/angular-ui-bootstrap-0.10.0-1.jar:/Users/edeandre/.m2/repository/org/webjars/jquery/2.1.0-2/jquery-2.1.0-2.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-test/3.2.0/spring-boot-starter-test-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-test/3.2.0/spring-boot-test-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-test-autoconfigure/3.2.0/spring-boot-test-autoconfigure-3.2.0.jar:/Users/edeandre/.m2/repository/com/jayway/jsonpath/json-path/2.8.0/json-path-2.8.0.jar:/Users/edeandre/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/4.0.1/jakarta.xml.bind-api-4.0.1.jar:/Users/edeandre/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.2/jakarta.activation-api-2.1.2.jar:/Users/edeandre/.m2/repository/net/minidev/json-smart/2.5.0/json-smart-2.5.0.jar:/Users/edeandre/.m2/repository/net/minidev/accessors-smart/2.5.0/accessors-smart-2.5.0.jar:/Users/edeandre/.m2/repository/org/ow2/asm/asm/9.3/asm-9.3.jar:/Users/edeandre/.m2/repository/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2.jar:/Users/edeandre/.m2/repository/org/awaitility/awaitility/4.2.0/awaitility-4.2.0.jar:/Users/edeandre/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/edeandre/.m2/repository/org/junit/jupiter/junit-jupiter/5.10.1/junit-jupiter-5.10.1.jar:/Users/edeandre/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.10.1/junit-jupiter-api-5.10.1.jar:/Users/edeandre/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.10.1/junit-jupiter-params-5.10.1.jar:/Users/edeandre/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.10.1/junit-jupiter-engine-5.10.1.jar:/Users/edeandre/.m2/repository/org/mockito/mockito-core/5.7.0/mockito-core-5.7.0.jar:/Users/edeandre/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.10/byte-buddy-agent-1.14.10.jar:/Users/edeandre/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/edeandre/.m2/repository/org/mockito/mockito-junit-jupiter/5.7.0/mockito-junit-jupiter-5.7.0.jar:/Users/edeandre/.m2/repository/org/skyscreamer/jsonassert/1.5.1/jsonassert-1.5.1.jar:/Users/edeandre/.m2/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-core/6.1.1/spring-core-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-jcl/6.1.1/spring-jcl-6.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-test/6.1.1/spring-test-6.1.1.jar:/Users/edeandre/.m2/repository/org/xmlunit/xmlunit-core/2.9.1/xmlunit-core-2.9.1.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-webflux/3.2.0/spring-boot-starter-webflux-3.2.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-reactor-netty/3.2.0/spring-boot-starter-reactor-netty-3.2.0.jar:/Users/edeandre/.m2/repository/io/projectreactor/netty/reactor-netty-http/1.1.13/reactor-netty-http-1.1.13.jar:/Users/edeandre/.m2/repository/io/netty/netty-codec-http/4.1.101.Final/netty-codec-http-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-common/4.1.101.Final/netty-common-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-buffer/4.1.101.Final/netty-buffer-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-transport/4.1.101.Final/netty-transport-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-codec/4.1.101.Final/netty-codec-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-handler/4.1.101.Final/netty-handler-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-codec-http2/4.1.101.Final/netty-codec-http2-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-resolver-dns/4.1.101.Final/netty-resolver-dns-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-resolver/4.1.101.Final/netty-resolver-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-codec-dns/4.1.101.Final/netty-codec-dns-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.101.Final/netty-resolver-dns-native-macos-4.1.101.Final-osx-x86_64.jar:/Users/edeandre/.m2/repository/io/netty/netty-resolver-dns-classes-macos/4.1.101.Final/netty-resolver-dns-classes-macos-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-transport-native-epoll/4.1.101.Final/netty-transport-native-epoll-4.1.101.Final-linux-x86_64.jar:/Users/edeandre/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.101.Final/netty-transport-native-unix-common-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.101.Final/netty-transport-classes-epoll-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/projectreactor/netty/reactor-netty-core/1.1.13/reactor-netty-core-1.1.13.jar:/Users/edeandre/.m2/repository/io/netty/netty-handler-proxy/4.1.101.Final/netty-handler-proxy-4.1.101.Final.jar:/Users/edeandre/.m2/repository/io/netty/netty-codec-socks/4.1.101.Final/netty-codec-socks-4.1.101.Final.jar:/Users/edeandre/.m2/repository/org/springframework/spring-webflux/6.1.1/spring-webflux-6.1.1.jar:/Users/edeandre/.m2/repository/io/projectreactor/reactor-core/3.6.0/reactor-core-3.6.0.jar:/Users/edeandre/.m2/repository/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar:/Users/edeandre/.m2/repository/org/junit/platform/junit-platform-launcher/1.10.1/junit-platform-launcher-1.10.1.jar:/Users/edeandre/.m2/repository/org/junit/platform/junit-platform-engine/1.10.1/junit-platform-engine-1.10.1.jar:/Users/edeandre/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/edeandre/.m2/repository/org/junit/platform/junit-platform-commons/1.10.1/junit-platform-commons-1.10.1.jar:/Users/edeandre/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/edeandre/.m2/repository/org/graalvm/buildtools/native-maven-plugin/0.9.28/native-maven-plugin-0.9.28.jar:/Users/edeandre/.m2/repository/org/graalvm/buildtools/junit-platform-native/0.9.28/junit-platform-native-0.9.28.jar:/Users/edeandre/.m2/repository/org/junit/platform/junit-platform-console/1.10.0/junit-platform-console-1.10.0.jar:/Users/edeandre/.m2/repository/org/junit/platform/junit-platform-reporting/1.10.0/junit-platform-reporting-1.10.0.jar:/Users/edeandre/.m2/repository/org/junit/platform/junit-platform-launcher/1.10.0/junit-platform-launcher-1.10.0.jar:/Users/edeandre/.m2/repository/org/junit/platform/junit-platform-engine/1.10.0/junit-platform-engine-1.10.0.jar:/Users/edeandre/.m2/repository/org/junit/platform/junit-platform-commons/1.10.0/junit-platform-commons-1.10.0.jar:/Users/edeandre/.m2/repository/org/junit/jupiter/junit-jupiter/5.10.0/junit-jupiter-5.10.0.jar:/Users/edeandre/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.10.0/junit-jupiter-api-5.10.0.jar:/Users/edeandre/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.10.0/junit-jupiter-params-5.10.0.jar:/Users/edeandre/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.10.0/junit-jupiter-engine-5.10.0.jar:/Users/edeandre/.m2/repository/org/graalvm/buildtools/utils/0.9.28/utils-0.9.28.jar:/Users/edeandre/.m2/repository/org/graalvm/buildtools/graalvm-reachability-metadata/0.9.28/graalvm-reachability-metadata-0.9.28.jar:/Users/edeandre/.m2/repository/org/graalvm/buildtools/junit-platform-native/0.9.28/junit-platform-native-0.9.28.jar --no-fallback -o /Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/native-tests -Djunit.platform.listeners.uid.tracking.output.dir=/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/test-ids -H:ConfigurationFileDirectories=/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/jakarta.servlet/jakarta.servlet-api/5.0.0,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/com.zaxxer/HikariCP/5.0.1,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/org.mockito/mockito-core/4.8.1,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/org.apache.commons/commons-compress/1.23.0,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/org.jboss.logging/jboss-logging/3.5.0.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/com.h2database/h2/2.1.210,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/com.github.ben-manes.caffeine/caffeine/3.1.2,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/com.fasterxml.jackson.core/jackson-databind/2.15.2,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/io.netty/netty-codec-http/4.1.80.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/ch.qos.logback/logback-classic/1.4.1,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/com.mysql/mysql-connector-j/8.0.31,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/org.hdrhistogram/HdrHistogram/2.1.12,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/io.netty/netty-handler/4.1.80.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/io.netty/netty-buffer/4.1.80.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/io.undertow/undertow-core/2.2.19.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/org.glassfish.jaxb/jaxb-runtime/3.0.2,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/io.netty/netty-common/4.1.80.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/io.netty/netty-transport/4.1.80.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/org.jetbrains.kotlin/kotlin-stdlib/1.7.10,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/io.netty/netty-resolver-dns/4.1.80.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/org.postgresql/postgresql/42.3.4,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/org.hibernate.validator/hibernate-validator/7.0.4.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/io.netty/netty-codec-http2/4.1.80.Final,/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/graalvm-reachability-metadata/88fb2168ae72548c45d7536d87ae8d32d07c7ee5/org.hibernate.orm/hibernate-core/6.2.0.Final --features=org.graalvm.junit.platform.JUnitPlatformFeature --exclude-config \Q/Users/edeandre/.m2/repository/io/netty/netty-codec-http/4.1.101.Final/netty-codec-http-4.1.101.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/Users/edeandre/.m2/repository/io/netty/netty-common/4.1.101.Final/netty-common-4.1.101.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/Users/edeandre/.m2/repository/io/netty/netty-buffer/4.1.101.Final/netty-buffer-4.1.101.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/Users/edeandre/.m2/repository/io/netty/netty-transport/4.1.101.Final/netty-transport-4.1.101.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/Users/edeandre/.m2/repository/io/netty/netty-handler/4.1.101.Final/netty-handler-4.1.101.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/Users/edeandre/.m2/repository/io/netty/netty-codec-http2/4.1.101.Final/netty-codec-http2-4.1.101.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/Users/edeandre/.m2/repository/io/netty/netty-resolver-dns/4.1.101.Final/netty-resolver-dns-4.1.101.Final.jar\E ^/META-INF/native-image/ org.graalvm.junit.platform.NativeImageJUnitLauncher
========================================================================================================================
GraalVM Native Image: Generating 'native-tests' (executable)...
========================================================================================================================
Warning: Could not resolve class com.github.luben.zstd.ZstdCompressCtx for reflection configuration. Reason: java.lang.ClassNotFoundException: com.github.luben.zstd.ZstdCompressCtx.
Warning: Could not resolve class io.netty.handler.ssl.OpenSslClientSessionCache for reflection configuration. Reason: java.lang.NoClassDefFoundError: io/netty/internal/tcnative/SSLSessionCache.
Warning: Could not resolve class io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$ExtendedTrustManagerVerifyCallback for reflection configuration. Reason: java.lang.NoClassDefFoundError: io/netty/internal/tcnative/CertificateVerifier.
Warning: Could not resolve class io.netty.handler.ssl.ReferenceCountedOpenSslServerContext$ExtendedTrustManagerVerifyCallback for reflection configuration. Reason: java.lang.NoClassDefFoundError: io/netty/internal/tcnative/CertificateVerifier.
Warning: Could not resolve class io.netty.handler.ssl.ReferenceCountedOpenSslServerContext$OpenSslServerCertificateCallback for reflection configuration. Reason: java.lang.NoClassDefFoundError: io/netty/internal/tcnative/CertificateCallback.
Warning: Could not resolve class org.conscrypt.ConscryptEngine for reflection configuration. Reason: java.lang.ClassNotFoundException: org.conscrypt.ConscryptEngine.
Warning: Could not resolve class org.conscrypt.ConscryptEngine for reflection configuration. Reason: java.lang.ClassNotFoundException: org.conscrypt.ConscryptEngine.
Warning: Could not resolve class org.conscrypt.ConscryptEngine for reflection configuration. Reason: java.lang.ClassNotFoundException: org.conscrypt.ConscryptEngine.
Warning: Method com.zaxxer.hikari.HikariConfig.getScheduledExecutorService() not found.
Warning: Method com.zaxxer.hikari.HikariConfig.isInitializationFailFast() not found.
Warning: Method com.zaxxer.hikari.HikariConfig.isJdbc4ConnectionTest() not found.
Warning: Method com.zaxxer.hikari.HikariConfig.setInitializationFailFast(boolean) not found.
Warning: Method com.zaxxer.hikari.HikariConfig.setJdbc4ConnectionTest(boolean) not found.
Warning: Method com.zaxxer.hikari.HikariConfig.setScheduledExecutorService(ScheduledThreadPoolExecutor) not found.
Warning: Could not resolve class org.mockito.configuration.MockitoConfiguration for reflection configuration. Reason: java.lang.ClassNotFoundException: org.mockito.configuration.MockitoConfiguration.
Warning: Could not resolve class org.jboss.logmanager.LogManager for reflection configuration. Reason: java.lang.ClassNotFoundException: org.jboss.logmanager.LogManager.
Warning: Field org.jboss.threads.EnhancedQueueExecutorBase1.tailLock not found.
Warning: Method sun.misc.Unsafe.invokeCleaner() not found.
Warning: Method ch.qos.logback.core.encoder.LayoutWrappingEncoder.setParent(Appender) not found.
Warning: Could not resolve class com.aayushatharva.brotli4j.Brotli4jLoader for reflection configuration. Reason: java.lang.ClassNotFoundException: com.aayushatharva.brotli4j.Brotli4jLoader.
Warning: Could not resolve class com.github.luben.zstd.Zstd for reflection configuration. Reason: java.lang.ClassNotFoundException: com.github.luben.zstd.Zstd.
Warning: Could not resolve class com.ning.compress.lzf.impl.UnsafeChunkDecoder for reflection configuration. Reason: java.lang.ClassNotFoundException: com.ning.compress.lzf.impl.UnsafeChunkDecoder.
Warning: Could not resolve class org.apache.commons.logging.impl.Log4JLogger for reflection configuration. Reason: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4JLogger.
Warning: Could not resolve class org.apache.commons.logging.impl.LogFactoryImpl for reflection configuration. Reason: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl.
Warning: Could not resolve class org.apache.commons.logging.impl.WeakHashtable for reflection configuration. Reason: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.WeakHashtable.
Warning: Could not resolve class org.apache.log4j.Level for reflection configuration. Reason: java.lang.ClassNotFoundException: org.apache.log4j.Level.
Warning: Could not resolve class org.apache.log4j.Priority for reflection configuration. Reason: java.lang.ClassNotFoundException: org.apache.log4j.Priority.
Warning: Could not resolve class org.conscrypt.Conscrypt for reflection configuration. Reason: java.lang.ClassNotFoundException: org.conscrypt.Conscrypt.
Warning: Could not resolve class org.conscrypt.OpenSSLContextImpl$TLSv13 for reflection configuration. Reason: java.lang.ClassNotFoundException: org.conscrypt.OpenSSLContextImpl$TLSv13.
Warning: Could not resolve class com.sun.el.ExpressionFactoryImpl for reflection configuration. Reason: java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl.
Warning: Could not resolve class groovy.grape.GrabAnnotationTransformation for reflection configuration. Reason: java.lang.ClassNotFoundException: groovy.grape.GrabAnnotationTransformation.
Warning: Could not resolve class groovy.lang.Script for reflection configuration. Reason: java.lang.ClassNotFoundException: groovy.lang.Script.
Warning: Could not resolve class groovy.lang.Script for reflection configuration. Reason: java.lang.ClassNotFoundException: groovy.lang.Script.
Warning: Could not resolve class groovyjarjarantlr.CommonToken for reflection configuration. Reason: java.lang.ClassNotFoundException: groovyjarjarantlr.CommonToken.
Warning: Could not resolve class javafx.beans.value.ObservableValue for reflection configuration. Reason: java.lang.ClassNotFoundException: javafx.beans.value.ObservableValue.
Warning: Could not resolve class javax.money.MonetaryAmount for reflection configuration. Reason: java.lang.ClassNotFoundException: javax.money.MonetaryAmount.
Warning: Could not resolve class org.codehaus.groovy.antlr.GroovySourceAST for reflection configuration. Reason: java.lang.ClassNotFoundException: org.codehaus.groovy.antlr.GroovySourceAST.
Warning: Could not resolve class org.codehaus.groovy.ast.builder.AstBuilderTransformation for reflection configuration. Reason: java.lang.ClassNotFoundException: org.codehaus.groovy.ast.builder.AstBuilderTransformation.
Warning: Could not resolve class org.codehaus.groovy.runtime.ScriptBytecodeAdapter for reflection configuration. Reason: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.ScriptBytecodeAdapter.
Warning: Could not resolve class org.glassfish.expressly.ValueExpressionImpl for reflection configuration. Reason: java.lang.ClassNotFoundException: org.glassfish.expressly.ValueExpressionImpl.
Warning: Could not resolve class org.glassfish.expressly.parser.AstValue for reflection configuration. Reason: java.lang.ClassNotFoundException: org.glassfish.expressly.parser.AstValue.
Warning: Could not resolve class org.joda.time.ReadableInstant for reflection configuration. Reason: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant.
Warning: Could not register method org.hibernate.validator.internal.constraintvalidators.bv.time.future.FutureValidatorForReadablePartial.<init>() for reflection. Reason: java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant.
Warning: Could not register method org.hibernate.validator.internal.constraintvalidators.bv.time.futureorpresent.FutureOrPresentValidatorForReadablePartial.<init>() for reflection. Reason: java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant.
Warning: Could not register method org.hibernate.validator.internal.constraintvalidators.bv.time.past.PastValidatorForReadablePartial.<init>() for reflection. Reason: java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant.
Warning: Could not register method org.hibernate.validator.internal.constraintvalidators.bv.time.pastorpresent.PastOrPresentValidatorForReadablePartial.<init>() for reflection. Reason: java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant.
Warning: Could not resolve class oracle.jdbc.OracleConnection for reflection configuration. Reason: java.lang.ClassNotFoundException: oracle.jdbc.OracleConnection.
Warning: Method org.hibernate.dialect.OracleArrayJdbcType.<init>() not found.
Warning: Could not resolve class org.hibernate.dialect.PostgreSQL10Dialect for reflection configuration. Reason: java.lang.ClassNotFoundException: org.hibernate.dialect.PostgreSQL10Dialect.
Warning: Could not resolve class org.hibernate.dialect.PostgreSQL10Dialect for reflection configuration. Reason: java.lang.ClassNotFoundException: org.hibernate.dialect.PostgreSQL10Dialect.
Warning: Could not resolve class javax.money.MonetaryAmount for reflection configuration. Reason: java.lang.ClassNotFoundException: javax.money.MonetaryAmount.
Warning: Could not resolve class org.hibernate.service.jta.platform.internal.NoJtaPlatform for reflection configuration. Reason: java.lang.ClassNotFoundException: org.hibernate.service.jta.platform.internal.NoJtaPlatform.
Warning: Could not resolve class org.eclipse.core.runtime.FileLocator for reflection configuration. Reason: java.lang.ClassNotFoundException: org.eclipse.core.runtime.FileLocator.
Warning: Could not resolve class kotlin.reflect.full.KClasses for reflection configuration. Reason: java.lang.ClassNotFoundException: kotlin.reflect.full.KClasses.
Warning: Could not register method org.h2.fulltext.FullTextLucene.createIndex(Connection, String, String, String) for reflection. Reason: java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexFormatTooOldException.
Warning: Could not register method org.h2.fulltext.FullTextLucene.dropAll(Connection) for reflection. Reason: java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexFormatTooOldException.
Warning: Could not register method org.h2.fulltext.FullTextLucene.dropIndex(Connection, String, String) for reflection. Reason: java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexFormatTooOldException.
Warning: Could not register method org.h2.fulltext.FullTextLucene.init(Connection) for reflection. Reason: java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexFormatTooOldException.
Warning: Could not register method org.h2.fulltext.FullTextLucene.reindex(Connection) for reflection. Reason: java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexFormatTooOldException.
Warning: Could not register method org.h2.fulltext.FullTextLucene.search(Connection, String, int, int) for reflection. Reason: java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexFormatTooOldException.
Warning: Could not register method org.h2.fulltext.FullTextLucene.searchData(Connection, String, int, int) for reflection. Reason: java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexFormatTooOldException.
Warning: Could not register method org.h2.fulltext.FullTextLucene$FullTextTrigger.<init>() for reflection. Reason: java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexableFieldType.
Warning: Could not resolve class reactor.core.publisher.Traces$StackWalkerCallSiteSupplierFactory for reflection configuration. Reason: java.lang.ClassNotFoundException: reactor.core.publisher.Traces$StackWalkerCallSiteSupplierFactory.
Warning: Could not resolve class reactor.core.publisher.Traces$ExceptionCallSiteSupplierFactory for reflection configuration. Reason: java.lang.ClassNotFoundException: reactor.core.publisher.Traces$ExceptionCallSiteSupplierFactory.
[1/8] Initializing...                                                                                    (8.2s @ 0.76GB)
 Java version: 17.0.9+9, vendor version: GraalVM CE 17.0.9+9.1
 Graal compiler: optimization level: 2, target machine: armv8-a
 C compiler: cc (apple, arm64, 15.0.0)
 Garbage collector: Serial GC (max heap size: 80% of RAM)
 4 user-specific feature(s)
 - com.oracle.svm.thirdparty.gson.GsonFeature
 - org.eclipse.angus.activation.nativeimage.AngusActivationFeature
 - org.graalvm.junit.platform.JUnitPlatformFeature
 - org.springframework.aot.nativex.feature.PreComputeFieldFeature
[junit-platform-native] Running in 'test listener' mode using files matching pattern [junit-platform-unique-ids*] found in folder [/Users/edeandre/workspaces/IntelliJ/summit-lab-spring-music/target/test-ids] and its subfolders.
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
[2/8] Performing analysis...  []                                                                        (57.8s @ 3.39GB)
  42,208 (91.22%) of 46,270 types reachable
  69,643 (68.73%) of 101,322 fields reachable
 202,575 (60.71%) of 333,691 methods reachable
  12,530 types, 1,515 fields, and 13,087 methods registered for reflection
       1 native library: -framework CoreServices

Error: Classes that should be initialized at run time got initialized during image building:
 org.springframework.aot.AotDetector was unintentionally initialized at build time. To see why org.springframework.aot.AotDetector got initialized use --trace-class-initialization=org.springframework.aot.AotDetector
org.springframework.core.NativeDetector was unintentionally initialized at build time. To see why org.springframework.core.NativeDetector got initialized use --trace-class-initialization=org.springframework.core.NativeDetector
To see how the classes got initialized, use --trace-class-initialization=org.springframework.aot.AotDetector,org.springframework.core.NativeDetector
Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
------------------------------------------------------------------------------------------------------------------------
                       11.4s (17.0% of total time) in 58 GCs | Peak RSS: 7.17GB | CPU load: 7.11
========================================================================================================================
Finished generating 'native-tests' in 1m 6s.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:26 min
[INFO] Finished at: 2023-11-27T11:10:17-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged or decided on label Nov 27, 2023
@edeandrea
Copy link
Contributor Author

I did re-run using the --trace-class-initialization=org.springframework.core.NativeDetector,org.springframework.aot.AotDetector and this is what it showed:

Error: Classes that should be initialized at run time got initialized during image building:
 org.springframework.aot.AotDetector was unintentionally initialized at build time. org.springframework.aot.AotDetector caused initialization of this class with the following trace: 
        at org.springframework.aot.AotDetector.<clinit>(AotDetector.java:42)
        at java.lang.Class.forName0(Unknown Source)
        at java.lang.Class.forName(Class.java:375)
        at org.graalvm.junit.platform.config.jupiter.JupiterConfigProvider.handleMethodReference(JupiterConfigProvider.java:157)
        at org.graalvm.junit.platform.config.jupiter.JupiterConfigProvider.handleDisabledIf(JupiterConfigProvider.java:141)
        at org.graalvm.junit.platform.config.jupiter.JupiterConfigProvider$$Lambda$913/0x0000007003d03680.apply(Unknown Source)
        at org.graalvm.junit.platform.config.util.AnnotationUtils.lambda$registerClassesFromAnnotationForReflection$3(AnnotationUtils.java:117)
        at org.graalvm.junit.platform.config.util.AnnotationUtils$$Lambda$902/0x0000007003d01b40.accept(Unknown Source)
        at org.graalvm.junit.platform.config.util.AnnotationUtils.forEachAnnotationOnClassMembers(AnnotationUtils.java:63)
        at org.graalvm.junit.platform.config.util.AnnotationUtils.registerClassesFromAnnotationForReflection(AnnotationUtils.java:116)
        at org.graalvm.junit.platform.config.jupiter.JupiterConfigProvider.onTestClassRegistered(JupiterConfigProvider.java:129)
        at org.graalvm.junit.platform.JUnitPlatformFeature.lambda$registerTestClassForReflection$3(JUnitPlatformFeature.java:153)
        at org.graalvm.junit.platform.JUnitPlatformFeature$$Lambda$897/0x0000007003d00fe8.accept(Unknown Source)
        at org.graalvm.junit.platform.JUnitPlatformFeature.forEachProvider(JUnitPlatformFeature.java:162)
        at org.graalvm.junit.platform.JUnitPlatformFeature.registerTestClassForReflection(JUnitPlatformFeature.java:153)
        at org.graalvm.junit.platform.JUnitPlatformFeature$$Lambda$896/0x0000007003d00db0.accept(Unknown Source)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.util.Iterator.forEachRemaining(Iterator.java:133)
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
        at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
        at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
        at java.util.Iterator.forEachRemaining(Iterator.java:133)
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
        at org.graalvm.junit.platform.JUnitPlatformFeature.discoverTestsAndRegisterTestClassesForReflection(JUnitPlatformFeature.java:145)
        at org.graalvm.junit.platform.JUnitPlatformFeature.beforeAnalysis(JUnitPlatformFeature.java:94)
        at com.oracle.svm.hosted.NativeImageGenerator.lambda$runPointsToAnalysis$9(NativeImageGenerator.java:757)
        at com.oracle.svm.hosted.NativeImageGenerator$$Lambda$578/0x0000007003cc8718.accept(Unknown Source)
        at com.oracle.svm.hosted.FeatureHandler.forEachFeature(FeatureHandler.java:89)
        at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:757)
        at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:582)
        at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:539)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:408)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:612)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:134)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:94)

org.springframework.core.NativeDetector was unintentionally initialized at build time. org.springframework.aot.AotDetector caused initialization of this class with the following trace: 
        at org.springframework.core.NativeDetector.<clinit>(NativeDetector.java:31)
        at org.springframework.aot.AotDetector.<clinit>(AotDetector.java:42)


Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception

@edeandrea
Copy link
Contributor Author

edeandrea commented Nov 27, 2023

I'm not sure if this is related, but I did have a test that was annotated with @org.junit.jupiter.api.condition.DisabledInNativeImage previously in Spring Boot 3.1.5. During the 3.2.0 upgrade that stopped working. The test was getting run even though it shouldn't be, & subsequently failing with the following.

I changed it to use @org.springframework.test.context.aot.DisabledInAotMode instead. That fixed the test from trying to run but then introduced this issue.

Exception in thread "main" org.springframework.test.context.aot.TestContextAotException: Failed to generate AOT artifacts for test classes [com.redhat.springmusic.api.OutboxEventsApiTests]
        at org.springframework.test.context.aot.TestContextAotGenerator.lambda$processAheadOfTime$5(TestContextAotGenerator.java:285)
        at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
        at org.springframework.util.MultiValueMapAdapter.forEach(MultiValueMapAdapter.java:179)
        at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:243)
        at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:205)
        at org.springframework.test.context.aot.TestAotProcessor.performAotProcessing(TestAotProcessor.java:91)
        at org.springframework.test.context.aot.TestAotProcessor.doProcess(TestAotProcessor.java:72)
        at org.springframework.test.context.aot.TestAotProcessor.doProcess(TestAotProcessor.java:39)
        at org.springframework.context.aot.AbstractAotProcessor.process(AbstractAotProcessor.java:82)
        at org.springframework.boot.test.context.SpringBootTestAotProcessor.main(SpringBootTestAotProcessor.java:63)
Caused by: org.springframework.test.context.aot.TestContextAotException: Failed to process test class [com.redhat.springmusic.api.OutboxEventsApiTests] for AOT
        at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:322)
        at org.springframework.test.context.aot.TestContextAotGenerator.lambda$processAheadOfTime$5(TestContextAotGenerator.java:276)
        ... 9 more
Caused by: java.lang.IllegalArgumentException: Failed to generate code for '[[MockDefinition@50b78155 name = '', typeToMock = com.redhat.springmusic.service.OutboxEventService, extraInterfaces = set[[empty]], answer = RETURNS_DEFAULTS, serializable = false, reset = AFTER]]' with type java.util.LinkedHashSet<?>
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:105)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.generateValue(BeanDefinitionPropertiesCodeGenerator.java:257)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.lambda$addConstructorArgumentValues$3(BeanDefinitionPropertiesCodeGenerator.java:179)
        at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
        at java.base/java.util.Collections$UnmodifiableMap.forEach(Collections.java:1553)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.addConstructorArgumentValues(BeanDefinitionPropertiesCodeGenerator.java:176)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.generateCode(BeanDefinitionPropertiesCodeGenerator.java:126)
        at org.springframework.beans.factory.aot.DefaultBeanRegistrationCodeFragments.generateSetBeanDefinitionPropertiesCode(DefaultBeanRegistrationCodeFragments.java:176)
        at org.springframework.beans.factory.aot.BeanRegistrationCodeGenerator.generateCode(BeanRegistrationCodeGenerator.java:81)
        at org.springframework.beans.factory.aot.BeanDefinitionMethodGenerator.lambda$generateBeanDefinitionMethod$3(BeanDefinitionMethodGenerator.java:176)
        at org.springframework.aot.generate.GeneratedMethod.<init>(GeneratedMethod.java:54)
        at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:112)
        at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:89)
        at org.springframework.beans.factory.aot.BeanDefinitionMethodGenerator.generateBeanDefinitionMethod(BeanDefinitionMethodGenerator.java:169)
        at org.springframework.beans.factory.aot.BeanDefinitionMethodGenerator.generateBeanDefinitionMethod(BeanDefinitionMethodGenerator.java:89)
        at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.lambda$generateRegisterBeanDefinitionsMethod$2(BeanRegistrationsAotContribution.java:90)
        at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
        at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.generateRegisterBeanDefinitionsMethod(BeanRegistrationsAotContribution.java:88)
        at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.lambda$applyTo$1(BeanRegistrationsAotContribution.java:73)
        at org.springframework.aot.generate.GeneratedMethod.<init>(GeneratedMethod.java:54)
        at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:112)
        at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:89)
        at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.applyTo(BeanRegistrationsAotContribution.java:72)
        at org.springframework.context.aot.BeanFactoryInitializationAotContributions.applyTo(BeanFactoryInitializationAotContributions.java:78)
        at org.springframework.context.aot.ApplicationContextAotGenerator.lambda$processAheadOfTime$0(ApplicationContextAotGenerator.java:58)
        at org.springframework.context.aot.ApplicationContextAotGenerator.withCglibClassHandler(ApplicationContextAotGenerator.java:67)
        at org.springframework.context.aot.ApplicationContextAotGenerator.processAheadOfTime(ApplicationContextAotGenerator.java:53)
        at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:318)
        ... 10 more
Caused by: java.lang.IllegalArgumentException: Failed to generate code for '[MockDefinition@50b78155 name = '', typeToMock = com.redhat.springmusic.service.OutboxEventService, extraInterfaces = set[[empty]], answer = RETURNS_DEFAULTS, serializable = false, reset = AFTER]' with type ?
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCodeForElement(BeanDefinitionPropertyValueCodeGenerator.java:114)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator$CollectionDelegate.generateCollectionOf(BeanDefinitionPropertyValueCodeGenerator.java:351)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator$SetDelegate.generateCollectionCode(BeanDefinitionPropertyValueCodeGenerator.java:450)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator$SetDelegate.generateCollectionCode(BeanDefinitionPropertyValueCodeGenerator.java:440)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator$CollectionDelegate.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:334)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:132)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:102)
        ... 37 more
Caused by: java.lang.IllegalArgumentException: Code generation does not support ?
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:137)
        at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCodeForElement(BeanDefinitionPropertyValueCodeGenerator.java:111)
        ... 43 more

@davinkevin
Copy link

Hello 👋 ,

It might be related, I have the exact problem even without Native, just for AOT code for standard JVM (which is the same, but then it's not purely native related 😇).

The stack trace is:

> Task :build-plugin-docker-images:checkKotlinGradlePluginConfigurationErrors
> Task :build-plugin-database:checkKotlinGradlePluginConfigurationErrors
> Task :build-plugin-database:compileKotlin UP-TO-DATE
> Task :build-plugin-docker-images:compileKotlin UP-TO-DATE
> Task :build-plugin-docker-images:compileJava NO-SOURCE
> Task :build-plugin-database:compileJava NO-SOURCE
> Task :build-plugin-database:pluginDescriptors UP-TO-DATE
> Task :build-plugin-docker-images:pluginDescriptors UP-TO-DATE
> Task :build-plugin-database:processResources UP-TO-DATE
> Task :build-plugin-docker-images:processResources UP-TO-DATE
> Task :build-plugin-database:classes UP-TO-DATE
> Task :build-plugin-docker-images:classes UP-TO-DATE
> Task :build-plugin-database:jar UP-TO-DATE
> Task :build-plugin-docker-images:jar UP-TO-DATE
> Task :backend:checkKotlinGradlePluginConfigurationErrors
> Task :backend-lib-database:compileJava UP-TO-DATE
> Task :backend-lib-database:processResources NO-SOURCE
> Task :backend-lib-database:classes UP-TO-DATE
> Task :backend-lib-database:jar UP-TO-DATE
> Task :backend-lib-youtubedl:compileJava UP-TO-DATE
> Task :backend-lib-youtubedl:processResources NO-SOURCE
> Task :backend-lib-youtubedl:classes UP-TO-DATE
> Task :backend-lib-youtubedl:jar UP-TO-DATE
> Task :backend:generateGitProperties
> Task :backend:processResources UP-TO-DATE
> Task :backend:processTestResources UP-TO-DATE
> Task :backend:koverFindJar
> Task :backend-lib-database:flywayMigrate
> Task :backend:compileKotlin
> Task :backend:compileJava NO-SOURCE
> Task :backend:classes
> Task :backend:compileTestKotlin
> Task :backend:compileTestJava NO-SOURCE
> Task :backend:testClasses UP-TO-DATE
> Task :backend:processTestAot
2023-11-27T17:26:58.004+01:00  INFO 66018 --- [           main] c.g.d.p.PodcastServerApplicationTests    : Starting PodcastServerApplicationTests using Java 21.0.1 with PID 66018 (/Users/kdavin/Workspace/gitlab.com/davinkevin/Podcast-Server/backend/build/classes/kotlin/test started by kdavin in /Users/kdavin/Workspace/gitlab.com/davinkevin/Podcast-Server/backend)
2023-11-27T17:26:58.006+01:00  INFO 66018 --- [           main] c.g.d.p.PodcastServerApplicationTests    : No active profile set, falling back to 1 default profile: "default"
2023-11-27T17:26:59.277+01:00  INFO 66018 --- [           main] c.g.d.p.cover.CoverHandlerTest           : Starting CoverHandlerTest using Java 21.0.1 with PID 66018 (/Users/kdavin/Workspace/gitlab.com/davinkevin/Podcast-Server/backend/build/classes/kotlin/test started by kdavin in /Users/kdavin/Workspace/gitlab.com/davinkevin/Podcast-Server/backend)
2023-11-27T17:26:59.278+01:00  INFO 66018 --- [           main] c.g.d.p.cover.CoverHandlerTest           : No active profile set, falling back to 1 default profile: "default"
WARNING: A Java agent has been loaded dynamically (/Users/kdavin/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.14.10/90ed94ac044ea8953b224304c762316e91fd6b31/byte-buddy-agent-1.14.10.jar)
WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
WARNING: Dynamic loading of agents will be disallowed by default in a future release
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
Exception in thread "main" org.springframework.test.context.aot.TestContextAotException: Failed to generate AOT artifacts for test classes [com.github.davinkevin.podcastserver.cover.CoverHandlerTest]
	at org.springframework.test.context.aot.TestContextAotGenerator.lambda$processAheadOfTime$5(TestContextAotGenerator.java:285)
	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:986)
	at org.springframework.util.MultiValueMapAdapter.forEach(MultiValueMapAdapter.java:179)
	at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:243)
	at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:205)
	at org.springframework.test.context.aot.TestAotProcessor.performAotProcessing(TestAotProcessor.java:91)
	at org.springframework.test.context.aot.TestAotProcessor.doProcess(TestAotProcessor.java:72)
	at org.springframework.test.context.aot.TestAotProcessor.doProcess(TestAotProcessor.java:39)
	at org.springframework.context.aot.AbstractAotProcessor.process(AbstractAotProcessor.java:82)
	at org.springframework.boot.test.context.SpringBootTestAotProcessor.main(SpringBootTestAotProcessor.java:63)
Caused by: org.springframework.test.context.aot.TestContextAotException: Failed to process test class [com.github.davinkevin.podcastserver.cover.CoverHandlerTest] for AOT
	at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:322)
	at org.springframework.test.context.aot.TestContextAotGenerator.lambda$processAheadOfTime$5(TestContextAotGenerator.java:276)
	... 9 more
Caused by: java.lang.IllegalArgumentException: Failed to generate code for '[[MockDefinition@354ff4f6 name = '', typeToMock = com.github.davinkevin.podcastserver.cover.CoverService, extraInterfaces = set[[empty]], answer = RETURNS_DEFAULTS, serializable = false, reset = AFTER]]' with type java.util.LinkedHashSet<?>
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:105)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.generateValue(BeanDefinitionPropertiesCodeGenerator.java:257)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.lambda$addConstructorArgumentValues$3(BeanDefinitionPropertiesCodeGenerator.java:179)
	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:986)
	at java.base/java.util.Collections$UnmodifiableMap.forEach(Collections.java:1707)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.addConstructorArgumentValues(BeanDefinitionPropertiesCodeGenerator.java:176)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.generateCode(BeanDefinitionPropertiesCodeGenerator.java:126)
	at org.springframework.beans.factory.aot.DefaultBeanRegistrationCodeFragments.generateSetBeanDefinitionPropertiesCode(DefaultBeanRegistrationCodeFragments.java:176)
	at org.springframework.beans.factory.aot.BeanRegistrationCodeGenerator.generateCode(BeanRegistrationCodeGenerator.java:81)
	at org.springframework.beans.factory.aot.BeanDefinitionMethodGenerator.lambda$generateBeanDefinitionMethod$3(BeanDefinitionMethodGenerator.java:176)
	at org.springframework.aot.generate.GeneratedMethod.<init>(GeneratedMethod.java:54)
	at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:112)
	at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:89)
	at org.springframework.beans.factory.aot.BeanDefinitionMethodGenerator.generateBeanDefinitionMethod(BeanDefinitionMethodGenerator.java:169)
	at org.springframework.beans.factory.aot.BeanDefinitionMethodGenerator.generateBeanDefinitionMethod(BeanDefinitionMethodGenerator.java:89)
	at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.lambda$generateRegisterBeanDefinitionsMethod$2(BeanRegistrationsAotContribution.java:90)
	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:986)
	at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.generateRegisterBeanDefinitionsMethod(BeanRegistrationsAotContribution.java:88)
	at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.lambda$applyTo$1(BeanRegistrationsAotContribution.java:73)
	at org.springframework.aot.generate.GeneratedMethod.<init>(GeneratedMethod.java:54)
	at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:112)
	at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:89)
	at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.applyTo(BeanRegistrationsAotContribution.java:72)
	at org.springframework.context.aot.BeanFactoryInitializationAotContributions.applyTo(BeanFactoryInitializationAotContributions.java:78)
	at org.springframework.context.aot.ApplicationContextAotGenerator.lambda$processAheadOfTime$0(ApplicationContextAotGenerator.java:58)
	at org.springframework.context.aot.ApplicationContextAotGenerator.withCglibClassHandler(ApplicationContextAotGenerator.java:67)
	at org.springframework.context.aot.ApplicationContextAotGenerator.processAheadOfTime(ApplicationContextAotGenerator.java:53)
	at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:318)
	... 10 more
Caused by: java.lang.IllegalArgumentException: Failed to generate code for '[MockDefinition@354ff4f6 name = '', typeToMock = com.github.davinkevin.podcastserver.cover.CoverService, extraInterfaces = set[[empty]], answer = RETURNS_DEFAULTS, serializable = false, reset = AFTER]' with type ?
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCodeForElement(BeanDefinitionPropertyValueCodeGenerator.java:114)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator$CollectionDelegate.generateCollectionOf(BeanDefinitionPropertyValueCodeGenerator.java:351)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator$SetDelegate.generateCollectionCode(BeanDefinitionPropertyValueCodeGenerator.java:450)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator$SetDelegate.generateCollectionCode(BeanDefinitionPropertyValueCodeGenerator.java:440)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator$CollectionDelegate.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:334)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:132)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:102)
	... 37 more
Caused by: java.lang.IllegalArgumentException: Code generation does not support ?
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCode(BeanDefinitionPropertyValueCodeGenerator.java:137)
	at org.springframework.beans.factory.aot.BeanDefinitionPropertyValueCodeGenerator.generateCodeForElement(BeanDefinitionPropertyValueCodeGenerator.java:111)
	... 43 more
> Task :backend:processTestAot FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':backend:processTestAot'.
> Process 'command '/Users/kdavin/.asdf/installs/java/graalvm-community-21.0.1/bin/java'' finished with non-zero exit value 1
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Get more help at https://help.gradle.org.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.4/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 19s
23 actionable tasks: 9 executed, 14 up-to-date

The complete project is available on GitLab.

@snicoll

This comment was marked as outdated.

@wilkinsona
Copy link
Member

@davinkevin That's a separate problem. @MockBean and @SpyBean are not yet supported with AOT or Native. spring-projects/spring-boot#32195 is tracking that effort.

@davinkevin
Copy link

@wilkinsona but it was working in 3.1.x 🤔. I did not change the code, just the dependency

@wilkinsona
Copy link
Member

I suspect it wasn't fully working in 3.1.x. Spring Framework 6.0 would log failures during AOT processing of tests and they would only become apparent when the tests were run. This was changed in Framework 6.1 to fail fast during AOT processing with @DisabledInAotMode introduced to disable the test. You should be able to use it fine now if you're not targeting a native image.

@edeandrea
Copy link
Contributor Author

edeandrea commented Nov 27, 2023

I suspect it wasn't fully working in 3.1.x. Spring Framework 6.0 would log failures during AOT processing of tests and they would only become apparent when the tests were run. This was changed in Framework 6.1 to fail fast during AOT processing with @DisabledInAotMode introduced to disable the test. You should be able to use it fine now if you're not targeting a native image.

I assume your comment is intended for @davinkevin?

In my case, I am using @DisabledInAotMode (although I wasn't in 3.1.5 - I was using @DisabledInNativeImage, but that doesn't seem to work anymore in 3.2.0).

@davinkevin
Copy link

I suspect it wasn't fully working in 3.1.x. Spring Framework 6.0 would log failures during AOT processing of tests and they would only become apparent when the tests were run. This was changed in Framework 6.1 to fail fast during AOT processing with @DisabledInAotMode introduced to disable the test. You should be able to use it fine now if you're not targeting a native image.

processTestAot and test were fine, no problem for them… running with standard java. (I use AOT to speed up startup, not for native). I'll give a try to this annotation, thanks.

@mhalbritter
Copy link
Contributor

mhalbritter commented Nov 28, 2023

Looking at the summit-lab-spring-music project: When building it with Boot 3.1, I see this in the logs:

2023-11-28T13:38:05.304+01:00  WARN 26093 --- [           main] o.s.t.c.aot.TestContextAotGenerator      : Failed to generate AOT artifacts for test classes [com.redhat.springmusic.api.OutboxEventsApiTests]. Enable DEBUG logging to view the stack trace. org.springframework.test.context.aot.TestContextAotException: Failed to process test class [com.redhat.springmusic.api.OutboxEventsApiTests] for AOT

This was a WARN log message in 3.1 and is now failing the build in 3.2 and this is what @wilkinsona is referring to. @DisabledInNativeImage generally works.

The problem here is that @DisabledInAotMode doesn't work in a native image. I have a minimal reproducer here:
sb-38569.zip

@mhalbritter mhalbritter changed the title nativeTest fails after upgrade from 3.1.5 to 3.2.0 @DisabledInAotMode doesn't work in native-image Nov 28, 2023
@bclozel bclozel transferred this issue from spring-projects/spring-boot Nov 28, 2023
@edeandrea
Copy link
Contributor Author

@DisabledInNativeImage generally works.

But it is not working here. In boot 3.1.x, @DisabledInNativeImage prevented the test class from running, like it was supposed to do. In boot 3.2.0, @DisabledInNativeImage is no longer working. The test class executes even though it shouldn't.

@mhalbritter
Copy link
Contributor

mhalbritter commented Nov 28, 2023

In 3.1.x, AOT processing for that class failed, which was logged, and then the process moved on. Native image then found @DisabledInNativeImage and ignored the test.

In 3.2.x, AOT processing for that class fails, which breaks the build. The native image never sees the @DisabledInNativeImage on the test class, as the build is stopped before.

@edeandrea
Copy link
Contributor Author

Ahhh ok - so what you're saying is that @DisabledInNativeImage was never actually working properly :)

@edeandrea
Copy link
Contributor Author

Nevermind my previous comment @mhalbritter - I wrote it before you adjusted your previous comment, which is much more clear.

@snicoll snicoll added type: bug A general bug and removed status: waiting-for-triage An issue we've not yet triaged or decided on labels Nov 28, 2023
@snicoll snicoll added this to the 6.1.2 milestone Nov 28, 2023
@sbrannen sbrannen self-assigned this Nov 28, 2023
@sbrannen sbrannen changed the title @DisabledInAotMode doesn't work in native-image @DisabledInAotMode does not work in native image Nov 28, 2023
@snicoll snicoll assigned snicoll and unassigned sbrannen Nov 28, 2023
@sbrannen sbrannen added in: test Issues in the test module theme: aot An issue related to Ahead-of-time processing labels Nov 28, 2023
@davinkevin
Copy link

Hello 👋,

I see the issue is now closed (good 👍), but I feel my case won't be covered from the commit code I've read.

Is there any solution:

  • to run test even if AOT is enabled (again, AOT without native as a target)
  • if the previous one is not possible, potentially run test by disabling AOT just for them (to keep the advantage of AOT at runtime without having to disable every test).

ATM, I have this stack trace:

2023-12-02T15:05:45.467+01:00  INFO 17850 --- [           main] c.g.d.p.PodcastServerApplicationTests    : Starting PodcastServerApplicationTests using Java 21.0.1 with PID 17850 (/Users/kdavin/Workspace/gitlab.com/davinkevin/Podcast-Server/backend/build/classes/kotlin/test started by kdavin in /Users/kdavin/Workspace/gitlab.com/davinkevin/Podcast-Server/backend)
2023-12-02T15:05:45.468+01:00  INFO 17850 --- [           main] c.g.d.p.PodcastServerApplicationTests    : No active profile set, falling back to 1 default profile: "default"
Exception in thread "main" org.springframework.test.context.aot.TestContextAotException: All test classes that share an ApplicationContext must be annotated with @DisabledInAotMode if one of them is: [com.github.davinkevin.podcastserver.cover.CoverHandlerTest$ShouldDeleteCover, com.github.davinkevin.podcastserver.cover.CoverRepositoryTest$ShouldFindCoverOlderThan, com.github.davinkevin.podcastserver.cover.CoverRepositoryTest$ShouldSaveCover, com.github.davinkevin.podcastserver.cover.CoverServiceTest$ShouldDeleteOldCovers, com.github.davinkevin.podcastserver.download.DownloadHandlerTest$ShouldDownloadItem, com.github.davinkevin.podcastserver.download.DownloadHandlerTest$ShouldFindLimitNumberOfParallelDownloads, com.github.davinkevin.podcastserver.download.DownloadHandlerTest$ShouldMoveInQueue, com.github.davinkevin.podcastserver.download.DownloadHandlerTest$ShouldProvideDownloadingList, com.github.davinkevin.podcastserver.download.DownloadHandlerTest$ShouldProvideWaitingQueue, com.github.davinkevin.podcastserver.download.DownloadHandlerTest$ShouldRemoveFromQueue, com.github.davinkevin.podcastserver.download.DownloadHandlerTest$ShouldStopAllDownloads, com.github.davinkevin.podcastserver.download.DownloadHandlerTest$ShouldStopOneDownload, com.github.davinkevin.podcastserver.download.DownloadHandlerTest$ShouldUpdateLimitNumberOfParallelDownloads, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldAddItemToQueue, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldAddItemToQueue$WithSuccess, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldFindAllDownloading, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldFindAllToDownload, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldFindAllToDownload$WithItemAlreadyDownloading, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldFindAllToDownload$WithNoItemCurrentlyDownloading, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldFindAllWaiting, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldFinishDownload, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldInitQueue, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldInitQueue$WithItems, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldInitQueue$WithItems$AndFilterOnDate, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldInitQueue$WithItems$AndFilterOnRetry, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldMoveIntoQueue, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldMoveIntoQueue$WithItemsInDownloadingItemsTable, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldRemoveFromQueue, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldStartItem, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldStopItem, com.github.davinkevin.podcastserver.download.DownloadRepositoryTest$ShouldUpdateDownloadItem, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldAddItemToQueue, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldExposeDownloadingQueue, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldExposeWaitingQueue, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldLaunchDownload, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldMoveIntoQueue, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldProvideIfIsInDownloadingQueue, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldRemoveItemFromDownloading, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldRemoveItemFromQueue, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldRemoveItemFromQueueAndDownloading, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldStopAllDownload, com.github.davinkevin.podcastserver.download.ItemDownloadManagerTest$ShouldUseLimitParallelDownload, com.github.davinkevin.podcastserver.download.downloaders.youtubedl.YoutubeDlDownloaderTest$Compatibility, com.github.davinkevin.podcastserver.download.downloaders.youtubedl.YoutubeDlDownloaderTest$ShouldDownload, com.github.davinkevin.podcastserver.download.downloaders.youtubedl.YoutubeDlDownloaderTest$ShouldDownload$AndBroadcast, com.github.davinkevin.podcastserver.download.downloaders.youtubedl.YoutubeDlDownloaderTest$ShouldDownload$ButFailsDueToError, com.github.davinkevin.podcastserver.download.downloaders.youtubedl.YoutubeDlDownloaderTest$ShouldDownload$ButFailsDueToError$DuringDownload, com.github.davinkevin.podcastserver.download.downloaders.youtubedl.YoutubeDlDownloaderTest$ShouldDownload$ButFailsDueToError$DuringFinishOfDownload, com.github.davinkevin.podcastserver.download.downloaders.youtubedl.YoutubeDlServiceTest$ShouldDownload, com.github.davinkevin.podcastserver.download.downloaders.youtubedl.YoutubeDlServiceTest$ShouldExtractName, com.github.davinkevin.podcastserver.find.FindHandlerTest$ShouldFind, com.github.davinkevin.podcastserver.find.finders.dailymotion.DailymotionFinderTest$ShouldFind, com.github.davinkevin.podcastserver.find.finders.dailymotion.DailymotionFinderTest$ShouldFind$WithError, com.github.davinkevin.podcastserver.find.finders.dailymotion.DailymotionFinderTest$ShouldFind$WithSuccess, com.github.davinkevin.podcastserver.find.finders.francetv.FranceTvFinderTest$ShouldFind, com.github.davinkevin.podcastserver.find.finders.gulli.GulliFinderTest$ShouldFind, com.github.davinkevin.podcastserver.find.finders.mytf1.MyTf1FinderTest$OnCompatibility, com.github.davinkevin.podcastserver.find.finders.mytf1.MyTf1FinderTest$ShouldFind, com.github.davinkevin.podcastserver.find.finders.mytf1.MyTf1FinderTest$ShouldFind$InformationWithCover, com.github.davinkevin.podcastserver.find.finders.rss.RSSFinderTest$ShouldBeCompatible, com.github.davinkevin.podcastserver.find.finders.rss.RSSFinderTest$ShouldFind, com.github.davinkevin.podcastserver.find.finders.youtube.YoutubeFinderTest$ShouldFind, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldDelete, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldDeleteItem, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldFindById, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldFindItemsOfPodcast, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldFindWatchListsAssociatedToAnItem, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldReset, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldSearchForItem, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldSearchForItem$OnParameters, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldSearchForItem$WithSuccess, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldServeCover, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldServeFile, com.github.davinkevin.podcastserver.item.ItemHandlerTest$ShouldUpload, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$HasToBeDeleted, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldCreate, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldCreate$ASingleItem, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldCreate$ASingleItem$WithError, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldCreate$ASingleItem$WithSuccess, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldCreate$MultipleItems, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldCreate$MultipleItems$WithSuccess, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldDelete, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldDelete$ById, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldFindAll, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldFindAllPlaylistsContainingAnItemById, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldFindById, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldFindItemInDownloadingState, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldReset, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldSearchWithPagination, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldSearchWithPagination$OnQueryParameter, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldSearchWithPagination$WithNoTagsAndNoStatutes, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldSearchWithPagination$WithNoTagsAndStatusNotDownloaded, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldSearchWithPagination$WithPodcastId, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldSearchWithPagination$WithSpecificOrder, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldSearchWithPagination$WithTagsT1AndNoSpecificStatutes, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldSearchWithPagination$WithTagsT1AndT2AndNoSpecificStatutes, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldSearchWithPagination$WithTagsT3AndNoSpecificStatutes, com.github.davinkevin.podcastserver.item.ItemRepositoryTest$ShouldUpdateAsDeleted, com.github.davinkevin.podcastserver.item.ItemServiceTest$ShouldDeleteById, com.github.davinkevin.podcastserver.item.ItemServiceTest$ShouldFindAllPlaylistsContainingAnItemById, com.github.davinkevin.podcastserver.item.ItemServiceTest$ShouldReset, com.github.davinkevin.podcastserver.item.ItemServiceTest$ShouldSearch, com.github.davinkevin.podcastserver.item.ItemServiceTest$ShouldUploadFile, com.github.davinkevin.podcastserver.messaging.MessageHandlerTest$OnStreamingToClient, com.github.davinkevin.podcastserver.messaging.MessageHandlerTest$OnStreamingToClient$OnDownloadingItem, com.github.davinkevin.podcastserver.messaging.MessageHandlerTest$OnStreamingToClient$OnUpdate, com.github.davinkevin.podcastserver.messaging.MessageHandlerTest$OnStreamingToClient$OnWaitingListChange, com.github.davinkevin.podcastserver.playlist.PlaylistHandlerTest$ShouldAdd, com.github.davinkevin.podcastserver.playlist.PlaylistHandlerTest$ShouldDelete, com.github.davinkevin.podcastserver.playlist.PlaylistHandlerTest$ShouldFindAll, com.github.davinkevin.podcastserver.playlist.PlaylistHandlerTest$ShouldFindById, com.github.davinkevin.podcastserver.playlist.PlaylistHandlerTest$ShouldFindById$AsJson, com.github.davinkevin.podcastserver.playlist.PlaylistHandlerTest$ShouldFindById$AsRss, com.github.davinkevin.podcastserver.playlist.PlaylistHandlerTest$ShouldRemove, com.github.davinkevin.podcastserver.playlist.PlaylistHandlerTest$ShouldSave, com.github.davinkevin.podcastserver.playlist.PlaylistRepositoryTest$ShouldAdd, com.github.davinkevin.podcastserver.playlist.PlaylistRepositoryTest$ShouldDelete, com.github.davinkevin.podcastserver.playlist.PlaylistRepositoryTest$ShouldFindAll, com.github.davinkevin.podcastserver.playlist.PlaylistRepositoryTest$ShouldFindById, com.github.davinkevin.podcastserver.playlist.PlaylistRepositoryTest$ShouldRemove, com.github.davinkevin.podcastserver.playlist.PlaylistRepositoryTest$ShouldSave, com.github.davinkevin.podcastserver.playlist.PlaylistServiceTest$ShouldAdd, com.github.davinkevin.podcastserver.playlist.PlaylistServiceTest$ShouldDelete, com.github.davinkevin.podcastserver.playlist.PlaylistServiceTest$ShouldFindAll, com.github.davinkevin.podcastserver.playlist.PlaylistServiceTest$ShouldFindById, com.github.davinkevin.podcastserver.playlist.PlaylistServiceTest$ShouldRemove, com.github.davinkevin.podcastserver.playlist.PlaylistServiceTest$ShouldSave, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldCreate, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldDelete, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindAll, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindCover, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindStats, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindStats$ForAGivenPodcast, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindStats$ForAGivenPodcast$ByCreationDate, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindStats$ForAGivenPodcast$ByDownloadDate, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindStats$ForAGivenPodcast$ByPubDate, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindStats$Globally, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindStats$Globally$ByCreationDate, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindStats$Globally$ByDownloadDate, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldFindStats$Globally$ByPubDate, com.github.davinkevin.podcastserver.podcast.PodcastHandlerTest$ShouldUpdate, com.github.davinkevin.podcastserver.podcast.PodcastRepositoryTest$ShouldDelete, com.github.davinkevin.podcastserver.podcast.PodcastRepositoryTest$ShouldFindAll, com.github.davinkevin.podcastserver.podcast.PodcastRepositoryTest$ShouldFindById, com.github.davinkevin.podcastserver.podcast.PodcastRepositoryTest$ShouldFindStats, com.github.davinkevin.podcastserver.podcast.PodcastRepositoryTest$ShouldFindStats$ByPodcast, com.github.davinkevin.podcastserver.podcast.PodcastRepositoryTest$ShouldFindStats$Globally, com.github.davinkevin.podcastserver.podcast.PodcastRepositoryTest$ShouldSave, com.github.davinkevin.podcastserver.podcast.PodcastRepositoryTest$ShouldSave$ANewPodcast, com.github.davinkevin.podcastserver.podcast.PodcastRepositoryTest$ShouldUpdate, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldDelete, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldFindAll, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldFindStats, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldFindStats$ByPodcastId, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldFindStats$Globally, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldSavePodcast, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldSavePodcast$WhichDoesntExistBefore, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldUpdatePodcast, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldUpdatePodcast$WithModificationOnCover, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldUpdatePodcast$WithModificationOnTags, com.github.davinkevin.podcastserver.podcast.PodcastServiceTest$ShouldUpdatePodcast$WithModificationOnTitle, com.github.davinkevin.podcastserver.podcast.PodcastXmlHandlerTest$ShouldGenerateOPML, com.github.davinkevin.podcastserver.podcast.PodcastXmlHandlerTest$ShouldGenerateOPML$WithVariableHeaderConfigurationAsHost, com.github.davinkevin.podcastserver.podcast.PodcastXmlHandlerTest$ShouldGenerateOPML$WithVariableHeaderConfigurationAsHost$OnHost, com.github.davinkevin.podcastserver.podcast.PodcastXmlHandlerTest$ShouldGenerateOPML$WithVariableHeaderConfigurationAsHost$OnPort, com.github.davinkevin.podcastserver.podcast.PodcastXmlHandlerTest$ShouldGenerateOPML$WithVariableHeaderConfigurationAsHost$OnScheme, com.github.davinkevin.podcastserver.podcast.PodcastXmlHandlerTest$ShouldGenerateRss, com.github.davinkevin.podcastserver.podcast.PodcastXmlHandlerTest$ShouldGenerateRss$ForPodcastWithBooleanLimit, com.github.davinkevin.podcastserver.podcast.PodcastXmlHandlerTest$ShouldGenerateRss$ForPodcastWithIntegerLimit, com.github.davinkevin.podcastserver.podcast.type.TypeHandlerTest$ShouldFindAll, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldCache, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldCheckIfCoverExists, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldCheckIfCoverExists$ForItem, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldCheckIfCoverExists$ForPodcast, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldDeleteCover, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldDeleteItemFile, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldDeletePodcast, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldDownloadCover, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldDownloadCover$ForItem, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldDownloadCover$ForPodcast, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldFetchMetadata, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldInitBucket, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldMovePodcastDetails, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldSignUrl, com.github.davinkevin.podcastserver.service.storage.FileStorageServiceTest$ShouldUploadFile, com.github.davinkevin.podcastserver.tag.TagHandlerTest$ShouldFindById, com.github.davinkevin.podcastserver.tag.TagHandlerTest$ShouldFindByNameContaining, com.github.davinkevin.podcastserver.tag.TagRepositoryTest$ShouldFindById, com.github.davinkevin.podcastserver.tag.TagRepositoryTest$ShouldFindByNameLike, com.github.davinkevin.podcastserver.tag.TagRepositoryTest$ShouldSave, com.github.davinkevin.podcastserver.tag.TagServiceTest$ShouldFindById, com.github.davinkevin.podcastserver.tag.TagServiceTest$ShouldFindByName, com.github.davinkevin.podcastserver.update.UpdateHandlerTest$ShouldUpdateAll, com.github.davinkevin.podcastserver.update.UpdateHandlerTest$ShouldUpdatePodcast, com.github.davinkevin.podcastserver.update.updaters.dailymotion.DailymotionUpdaterTest$Compatibility, com.github.davinkevin.podcastserver.update.updaters.dailymotion.DailymotionUpdaterTest$ShouldFindItems, com.github.davinkevin.podcastserver.update.updaters.dailymotion.DailymotionUpdaterTest$ShouldSign, com.github.davinkevin.podcastserver.update.updaters.francetv.FranceTvUpdaterTest$Compatibility, com.github.davinkevin.podcastserver.update.updaters.francetv.FranceTvUpdaterTest$ShouldFindItems, com.github.davinkevin.podcastserver.update.updaters.francetv.FranceTvUpdaterTest$ShouldSign, com.github.davinkevin.podcastserver.update.updaters.gulli.GulliUpdaterTest$Compatibility, com.github.davinkevin.podcastserver.update.updaters.gulli.GulliUpdaterTest$ShouldFindItems, com.github.davinkevin.podcastserver.update.updaters.gulli.GulliUpdaterTest$ShouldSign, com.github.davinkevin.podcastserver.update.updaters.mytf1.MyTf1UpdaterTest$Compatibility, com.github.davinkevin.podcastserver.update.updaters.mytf1.MyTf1UpdaterTest$ShouldFindItems, com.github.davinkevin.podcastserver.update.updaters.mytf1.MyTf1UpdaterTest$ShouldSign, com.github.davinkevin.podcastserver.update.updaters.rss.RSSUpdaterTest$Compatibility, com.github.davinkevin.podcastserver.update.updaters.rss.RSSUpdaterTest$ShouldFindItems, com.github.davinkevin.podcastserver.update.updaters.rss.RSSUpdaterTest$ShouldSign, com.github.davinkevin.podcastserver.update.updaters.upload.UploadUpdaterTest$Compatibility, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByApiUpdaterTest$Compatibility, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByApiUpdaterTest$ShouldFindItems, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByApiUpdaterTest$ShouldSign, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByXmlUpdaterTest$Compatibility, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByXmlUpdaterTest$ShouldFind, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByXmlUpdaterTest$ShouldFind$InAChannel, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByXmlUpdaterTest$ShouldFind$InAPlaylist, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByXmlUpdaterTest$ShouldSign, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByXmlUpdaterTest$ShouldSign$AChannel, com.github.davinkevin.podcastserver.update.updaters.youtube.YoutubeByXmlUpdaterTest$ShouldSign$APlaylist]
        at org.springframework.test.context.aot.TestContextAotGenerator.lambda$processAheadOfTime$5(TestContextAotGenerator.java:253)
        at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:986)
        at org.springframework.util.MultiValueMapAdapter.forEach(MultiValueMapAdapter.java:179)
        at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:243)
        at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:205)
        at org.springframework.test.context.aot.TestAotProcessor.performAotProcessing(TestAotProcessor.java:91)
        at org.springframework.test.context.aot.TestAotProcessor.doProcess(TestAotProcessor.java:72)
        at org.springframework.test.context.aot.TestAotProcessor.doProcess(TestAotProcessor.java:39)
        at org.springframework.context.aot.AbstractAotProcessor.process(AbstractAotProcessor.java:82)
        at org.springframework.boot.test.context.SpringBootTestAotProcessor.main(SpringBootTestAotProcessor.java:63)

> Task :backend:processTestAot FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':backend:processTestAot'.
> Process 'command '/Users/kdavin/.asdf/installs/java/graalvm-community-21.0.1/bin/java'' finished with non-zero exit value 1

And I feel adding @DisabledInAotMode will reduce the number of test run and potentially doesn't mean anything for my case.

Finally, should I open an new issue @wilkinsona?

davinkevin added a commit to davinkevin/Podcast-Server that referenced this issue Dec 3, 2023
Following spring-projects/spring-framework#31705 (comment)
and spring-projects/spring-boot#32195,
there is an incompatibility with AOTProcess of tests. For this
reason we remove the native plugin.
@sdeleuze
Copy link
Contributor

sdeleuze commented Dec 4, 2023

@davinkevin Running test with AOT is supported, but not for unsupported use cases like @Mockbeanor @Spybean as mentioned by Andy in his comment.

I am not sure a new issue is needed (unless you have found another broken use case with AOT tests) but spring-projects/spring-boot#32195 title is indeed confusing, I have dropped this comment on Spring Boot side to clarify.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: test Issues in the test module theme: aot An issue related to Ahead-of-time processing type: bug A general bug
Projects
None yet
Development

No branches or pull requests

8 participants