[jboss-jira] [JBoss JIRA] (WFLY-13734) JPA subsystem should fail deployment if ValidationMode.CALLBACK is configured but the BV capability is not present
Scott Marlow (Jira)
issues at jboss.org
Thu Aug 6 09:33:00 EDT 2020
[ https://issues.redhat.com/browse/WFLY-13734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14361193#comment-14361193 ]
Scott Marlow commented on WFLY-13734:
-------------------------------------
{quote}
If the user excludes the bean-validation Galleon layer from jpa / jpa-distributed Galleon layers, and configures JPA with ValidationMode.CALLBACK, the deployment will fail because the persistent provider will thrown an exception.
{quote}
Correct, they will then either include bean-validation Galleon layer from jpa / jpa-distributed Galleon layers or stop using BeanValidation by switching to ValidationMode.NONE.
{quote}
Scott Marlow just wanted to confirm the following, I assume the JPA persistent provider is able to distinguish which ValidationMode has been configured, is this assumption correct?
{quote}
Yes, the JPA persistence provider is passed the same (javax.persistence.spi.PersistenceUnitInfo) "pu" variable which means the persistence provider can also call pu.getValidationMode() (it is also passed a "javax.persistence.validation.factory" property only if non-null).
{quote}
There is no distinction between the value the validatorFactory gets, it will be always null, when we don't have the "org.wildfly.bean-validation" capability and we are using either ValidationMode.CALLBACK or ValidationMode.AUTO. So the persistent provider should know that the configuration is ValidationMode.CALLBACK to throwing an exception.
{quote}
Correct, the persistence provider is responsible for throwing the exception for ValidationMode.CALLBACK and null validatorFactory.
> JPA subsystem should fail deployment if ValidationMode.CALLBACK is configured but the BV capability is not present
> ------------------------------------------------------------------------------------------------------------------
>
> Key: WFLY-13734
> URL: https://issues.redhat.com/browse/WFLY-13734
> Project: WildFly
> Issue Type: Bug
> Components: JPA / Hibernate
> Reporter: Brian Stansberry
> Assignee: Scott Marlow
> Priority: Major
> Fix For: No Release
>
>
> This is a follow-on to https://github.com/wildfly/wildfly/pull/13444 / WFLY-13726. That fix is about applying logic consistently in both places where PersistenceUnitServiceHandler integrates with BV. But I suspect the existing handling isn't correct in the case where ValidationMode.CALLBACK is configured. The javadoc for that enum value says "The persistence provider must perform the lifecycle event validation. It is an error if there is no Bean Validation provider present in the environment." But I think our handling is ignoring that if the BV capability is not present.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the jboss-jira
mailing list