Reputation: 3070
I was trying to upgrade quarkus from 1.x to 3.6.3
In 3.6.3 I have to introduce the dependency 'io.quarkus:quarkus-hibernate-validator'
to support jakarta.validation.constraints.*
.
Then I got this build error:
java.lang.RuntimeException: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[error]: Build step io.quarkus.hibernate.validator.deployment.HibernateValidatorProcessor#beanValidationAnnotations threw an exception: java.lang.NoSuchMethodError: 'java.util.Set org.hibernate.validator.internal.metadata.core.ConstraintHelper.getBuiltinConstraints()'
at io.quarkus.hibernate.validator.deployment.HibernateValidatorProcessor.beanValidationAnnotations(HibernateValidatorProcessor.java:176)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849)
at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
at java.base/java.lang.Thread.run(Thread.java:840)
at org.jboss.threads.JBossThread.run(JBossThread.java:501)
at io.quarkus.test.junit.QuarkusTestExtension.throwBootFailureException(QuarkusTestExtension.java:638)
at io.quarkus.test.junit.QuarkusTestExtension.interceptTestClassConstructor(QuarkusTestExtension.java:722)
at java.base/java.util.Optional.orElseGet(Optional.java:364)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
In my API definition, I've noticed that the validations were applied to @NotNull @Valid Set<Long> requestBody
(generated by OpenAPI). I am not sure the error means hibernate does not find any validator for Set
class?
Upvotes: 1
Views: 253
Reputation: 3032
I was getting with Quarkus 2.16.12
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:2.16.12.Final:build (default) on project my-driver: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR] [error]: Build step io.quarkus.hibernate.validator.deployment.HibernateValidatorProcessor#build threw an exception: java.lang.NoSuchMethodError: 'java.util.Set org.hibernate.validator.internal.metadata.core.ConstraintHelper.getBuiltinConstraints()'
[ERROR] at io.quarkus.hibernate.validator.deployment.HibernateValidatorProcessor.build(HibernateValidatorProcessor.java:233)
[ERROR] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:580)
[ERROR] at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:909)
[ERROR] at io.quarkus.builder.BuildContext.run(BuildContext.java:281)
[ERROR] at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
[ERROR] at java.base/java.lang.Thread.run(Thread.java:1583)
[ERROR] at org.jboss.threads.JBossThread.run(JBossThread.java:501)
[ERROR] -> [Help 1]
[ERROR]
I removed the quarkus-hibernate-validator dependency (which I was not using) and the issue solved itself
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-validator</artifactId>
</dependency>
Upvotes: 0
Reputation: 3070
There is a transitive dependency of Hibernate validator. After I exclude it from gradle build, the problem is resolved.
Upvotes: 1