The GitHub Actions job "Groovy Snapshot Canary Build" on 
grails-core.git/chore/cleanup-AbstractCriteriaBuilder has failed.
Run started by GitHub user jdaugherty (triggered by jdaugherty).

Head commit for run:
c0471a1c8800628a331158f38c77c996d8951f2d / Walter Duque de Estrada 
<[email protected]>
Clean up AbstractCriteriaBuilder and add unit test coverage

AbstractCriteriaBuilder had no direct unit tests and, being abstract, can
only be exercised through its concrete subclasses. Adds a mock-collaborator
CriteriaBuilderSpec in grails-datamapping-core (via grails.gorm.CriteriaBuilder)
and extends the matching spec in grails-datamapping-rx. The previous
SimpleMapDatastore-backed spec moves to CriteriaBuilderIntegrationSpec.
Every DSL call is verified against the exact Query.Criterion class, property
and value it adds, rather than a wildcard add(_) interaction.

Along the way:
- grails.gorm.CriteriaBuilder's cache/readOnly/join(String)/select overrides
  duplicated AbstractCriteriaBuilder's bodies only to narrow the return type
  for chaining. They now cast-and-delegate to super, matching the pattern
  already used by grails.gorm.rx.DetachedCriteria.
- scroll(Closure) re-entered invokeMethod(SCROLL_CALL, [c]) to reuse the
  criteria-construction logic. A zero-arg or null call resolved, via the
  meta-method lookup, back to scroll(Closure) with a null argument and
  recursed until StackOverflowError. The shared logic is extracted into
  executeCriteriaConstruction() and scroll() calls it directly.
- ltSome(String, QueryableCriteria) added a LessThanEqualsSome criterion
  instead of LessThanSome; AbstractDetachedCriteria already built the right
  one. Surfaced by the exact-criterion assertions in the new spec.
- rlike validated and reported its property under the "like" label.
- Static-analysis cleanup: missing @Override annotations, parameterized raw
  Class/PersistentProperty/Closure/QueryableCriteria/DetachedCriteria uses,
  instanceof pattern variables, getLast()/removeLast(), the duplicated
  MetaMethod lookup extracted into a helper with a NOT_FOUND sentinel, and
  the construction-method check and order() using the class's own constants
  instead of reaching into the grails.gorm.CriteriaBuilder subclass.
  in/inList(String, Collection) keep the raw Collection parameter because
  Criteria declares them raw.

Co-Authored-By: Claude Sonnet 5 <[email protected]>

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

With regards,
GitHub Actions via GitBox

Reply via email to