|
Description:
|
While using
DefaultProviderResolver
_DefaultProviderResolver_
, we get the following error when there are multiple validator implementations in classpath and
the ones
one
ahead in the classpath is not class loader compatible with the api jar:
{noformat}
javax.validation.ValidationException: Unable to load Bean Validation provider at javax.validation.Validation$GetValidationProviderList.run(Validation.java:346) at javax.validation.Validation$GetValidationProviderList.getValidationProviderList(Validation.java:310) at javax.validation.Validation$DefaultValidationProviderResolver.getValidationProviders(Validation.java:292) at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:252) at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:107) Truncated. see log file for complete stacktrace Caused By: java.util.ServiceConfigurationError: javax.validation.spi.ValidationProvider: Provider org.hibernate.validator.HibernateValidator not a subtype at java.util.ServiceLoader.fail(ServiceLoader.java:231) at java.util.ServiceLoader.access$300(ServiceLoader.java:181) at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:369) at java.util.ServiceLoader$1.next(ServiceLoader.java:445) at javax.validation.Validation$GetValidationProviderList.run(Validation.java:343) Truncated. see log file for complete stacktrace
{noformat}
I have tracked the error down to
beanvalidation
_beanvalidation
-api/src/main/java/javax/validation/Validation.
java
java_
where it is not handling
ServiceConfigurationError
_ServiceConfigurationError_
correctly. This code was introduced in BVAL-298. There was a discussion about ServiceConfigurationError in BVAL-280 as well. The correct thing to do is to ignore the
ServiceConfigurationError
_ServiceConfigurationError_
and try the next available provider. I
amm
am
attaching a patch to this effect.
|