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
