When bootstrapping a validator factory via Validation#buildDefaultValidatorFactory() or byDefaultProvider(), callers currently cannot distinguish between the case where no BV provider is present and the case where a provider is present but failed to bootstrap (e.g. due to a misconfiguration in validation.xml or missing transitive dependencies): a ValidationException will be raised in both cases. This may be addressed by adding a new subtype of ValidationException, NoProviderFoundException. This is useful in conjunction with validation-mode auto of JPA: validation of entities is only to be done if a BV provider is present, otherwise validation isn't performed. This causes exceptions to go unnoticed, if there is a BV provider but fails to start due to reasons as given above. The new exception will let the JPA provider detect the case of no BV provider being present, letting it only ignore this one but let all other exceptions raised by the BV provider bubble up. |