The GitHub Actions job "Coverage" on 
grails-core.git/fix/gorm-bean-validation-constraints has succeeded.
Run started by GitHub user jdaugherty (triggered by jdaugherty).

Head commit for run:
1bd4754bbd3a1ea13510fd099f6032da741eedb8 / James Daugherty 
<[email protected]>
Keep the enclosing cascade flag, follow the beans the provider cascades to and 
the groups a sequence provider chooses

A validation started while another one is in progress, such as by a custom 
constraint validating another domain
instance with validate(), removed the CASCADE_VALIDATION flag of the enclosing 
validation when it ended, so the
provider stopped cascading through the transient properties marked @Valid of 
the objects it reached, and cascaded
into the persistent associations of the entity again. GormValidatorAdapter now 
puts the value of the enclosing
validation back in each overload.

The filter of the reported groups walked the declared types of the properties 
the provider cascaded through, so a
transient property declared as an Object hid the @ConvertGroup of a property of 
the value it held, and a violation
found through the converted group was dropped. It now reads the beans the 
provider cascaded to from the validated
object, the element of a container by its index or key, and uses their classes; 
an element of a set, which the path
does not identify, is still read as the declared type.

The nullability constraints of the block left to Bean Validation were decided 
from the static annotations alone,
whereas Hibernate Validator's @GroupSequenceProvider chooses the default group 
sequence per instance, so
`nullable: false` with a @Null of a group the provider chose for the instance 
rejected a value the provider
accepted. JakartaConstraintsTranslator treats a class with the provider as 
redefining the default group, describes
it with the sequence the provider gives for no instance, as its descriptor 
does, and finds the default groups of an
instance (findDefaultGroups); PersistentEntityValidator passes the object to 
getValidatedConstrainedProperties, so
JakartaPersistentEntityValidator relaxes the nullability constraints per the 
groups of the instance, and the adapter
expands the default group of each bean it reads along a path for that bean.

Regressions in GormValidatorAdapterSpec, JakartaValidatorRegistrySpec, 
JakartaConstraintsTranslatorSpec and the TCK
BeanValidationSpec (BeanValidatedLedger with its counterpart, 
BeanValidatedMember with its sequence provider), all
failing without the changes. The guide and upgrade note 89 describe the three 
behaviours.

Report URL: https://github.com/apache/grails-core/actions/runs/41053687769

With regards,
GitHub Actions via GitBox

Reply via email to