Skip to content

quarkus-maven-plugin not JDK 25 compatible #48404

Open
@jerboaa

Description

@jerboaa

Describe the bug

By chance I was trying to build a quarkus-integration-test with a JDK 25 (JDK 25+26) and the maven build failed due to a hibernate/bytebuddy incompatibility (which seems strange given raphw/byte-buddy#1786):

[INFO] 
[INFO] --- resources:3.3.1:testResources (default-testResources) @ quarkus-integration-test-jpa ---
[INFO] skip non existing resourceDirectory /home/sgehwolf/Documents/openjdk/quarkus/quarkus-source/integration-tests/jpa/src/test/resources
[INFO] 
[INFO] --- compiler:3.14.0:testCompile (default-testCompile) @ quarkus-integration-test-jpa ---
[INFO] Recompiling the module because of changed dependency.
[INFO] Compiling 23 source files with javac [debug deprecation parameters release 17] to target/test-classes
[INFO] 
[INFO] --- surefire:3.5.3:test (default-test) @ quarkus-integration-test-jpa ---
[INFO] Skipped
[INFO] 
[INFO] --- quarkus:999-SNAPSHOT:build (default) @ quarkus-integration-test-jpa ---
[INFO] [quarkus-build-caching-extension] Quarkus previous configuration not found
[INFO] [quarkus-build-caching-extension] Quarkus build goal marked as not cacheable
[INFO] [quarkus-build-caching-extension] Quarkus previous configuration not found
[INFO] [quarkus-build-caching-extension] Quarkus build goal marked as not cacheable
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  6.013 s
[INFO] Finished at: 2025-06-16T12:19:58+02:00
[INFO] ------------------------------------------------------------------------
[INFO] Njord session closed
[INFO] 14 goals, 14 executed
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:999-SNAPSHOT:build (default) on project quarkus-integration-test-jpa: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR] 	[error]: Build step io.quarkus.hibernate.orm.deployment.HibernateOrmProcessor#pregenProxies threw an exception: java.lang.IllegalArgumentException: Java 25 (69) is not supported by the current version of Byte Buddy which officially supports Java 24 (68) - update Byte Buddy or set net.bytebuddy.experimental as a VM property
[ERROR] 	at net.bytebuddy.utility.OpenedClassReader.of(OpenedClassReader.java:120)
[ERROR] 	at net.bytebuddy.utility.OpenedClassReader.of(OpenedClassReader.java:95)
[ERROR] 	at net.bytebuddy.utility.AsmClassReader$Factory$Default.make(AsmClassReader.java:82)
[ERROR] 	at net.bytebuddy.pool.TypePool$Default.parse(TypePool.java:912)
[ERROR] 	at net.bytebuddy.pool.TypePool$Default.doDescribe(TypePool.java:898)
[ERROR] 	at net.bytebuddy.pool.TypePool$AbstractBase.describe(TypePool.java:599)
[ERROR] 	at net.bytebuddy.pool.TypePool$AbstractBase$Hierarchical.describe(TypePool.java:682)
[ERROR] 	at net.bytebuddy.pool.TypePool$Default$LazyTypeDescription$GenericTypeToken$ForRawType.toGenericType(TypePool.java:4456)
[ERROR] 	at net.bytebuddy.pool.TypePool$Default$LazyTypeDescription$TokenizedGenericType.resolve(TypePool.java:7004)
[ERROR] 	at net.bytebuddy.description.type.TypeDescription$Generic$LazyProjection.accept(TypeDescription.java:6301)
[ERROR] 	at net.bytebuddy.description.type.TypeDescription$Generic$LazyProjection$WithResolvedErasure.resolve(TypeDescription.java:6953)
[ERROR] 	at net.bytebuddy.description.type.TypeDescription$Generic$LazyProjection.accept(TypeDescription.java:6301)
[ERROR] 	at net.bytebuddy.description.type.TypeDescription$Generic$LazyProjection$WithResolvedErasure.resolve(TypeDescription.java:6953)
[ERROR] 	at net.bytebuddy.description.type.TypeDescription$Generic$LazyProjection.accept(TypeDescription.java:6301)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$Default.analyzeNullable(MethodGraph.java:729)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$Default.doAnalyze(MethodGraph.java:743)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$Default.analyze(MethodGraph.java:710)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$Default.analyzeNullable(MethodGraph.java:729)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$Default.doAnalyze(MethodGraph.java:743)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$Default.analyze(MethodGraph.java:710)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$Default.analyzeNullable(MethodGraph.java:729)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$Default.doAnalyze(MethodGraph.java:743)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$Default.compile(MethodGraph.java:668)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodGraph$Compiler$AbstractBase.compile(MethodGraph.java:519)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.MethodRegistry$Default.prepare(MethodRegistry.java:472)
[ERROR] 	at net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.toTypeWriter(SubclassDynamicTypeBuilder.java:222)
[ERROR] 	at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$UsingTypeWriter.make(DynamicType.java:4092)
[ERROR] 	at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3762)
[ERROR] 	at org.hibernate.bytecode.internal.bytebuddy.ByteBuddyState.make(ByteBuddyState.java:273)
[ERROR] 	at org.hibernate.bytecode.internal.bytebuddy.ByteBuddyState.make(ByteBuddyState.java:263)
[ERROR] 	at org.hibernate.proxy.pojo.bytebuddy.ByteBuddyProxyHelper.buildUnloadedProxy(ByteBuddyProxyHelper.java:75)
[ERROR] 	at io.quarkus.hibernate.orm.deployment.ProxyBuildingHelper.buildUnloadedProxy(ProxyBuildingHelper.java:42)
[ERROR] 	at io.quarkus.hibernate.orm.deployment.HibernateOrmProcessor.generatedProxies(HibernateOrmProcessor.java:1367)
[ERROR] 	at io.quarkus.hibernate.orm.deployment.HibernateOrmProcessor.pregenProxies(HibernateOrmProcessor.java:453)
[ERROR] 	at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:735)
[ERROR] 	at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:856)
[ERROR] 	at io.quarkus.builder.BuildContext.run(BuildContext.java:255)
[ERROR] 	at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2651)
[ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2630)
[ERROR] 	at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1622)
[ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1589)
[ERROR] 	at java.base/java.lang.Thread.run(Thread.java:1474)
[ERROR] 	at org.jboss.threads.JBossThread.run(JBossThread.java:501)
[ERROR] -> [Help 1]

Not sure if this is supposed to work. Given that JDK 25 will GA in September (3 months), we should try to improve compatibility with it.

Steps to reproduce (on Linux) should be something like this:

export JAVA_HOME="/path/to/jdk-25+26"
export GRAALVM_HOME="/path/to/graalvm-for-jdk-25"
export PATH="$PATH:$GRAALVM_HOME/bin"
podman system service --time=0 unix:/run/user/$(id -u)/podman.sock &
export DOCKER_HOST="unix:/run/user/$(id -u)/podman.sock"
pushd integration-tests
../mvnw --fae -pl "jpa" -Dnative -Dtest-containers -Dmaven.test.failure.ignore=true -Dstart-containers -Dquarkus.native.enable-reports -Dnative.surefire.skip -Dformat.skip -Dno-descriptor-tests  -Dlog.level=ALL clean verify
popd

Expected behavior

quarkus-maven-build passes

Actual behavior

quarkus-maven-build fails

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/hibernate-ormHibernate ORMkind/bug-thirdpartyBugs that are caused by third-party components and not causing a major dysfunction of core Quarkus.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions