Changelog for Groovy 5.0.7

Bug

  • [GROOVY-11985] - Static method override on trait implementer ignored when called via this in trait body
  • [GROOVY-12040] - restore @Builder retention to RUNTIME in 5.0.x
  • [GROOVY-12058] - ClassNodeUtils.getPropNameForAccessor should use JavaBeans decapitalization to match runtime property naming *
  • [GROOVY-12062] - OptimizingStatementWriter __$stMC slow branch resolves a try-block local as getProperty when the method has a non-empty finally (classic non-indy codegen) - regression in 5.0.x
  • [GROOVY-12089] - Groovy 5 ClassNode.getGetterMethod() can clone a getter with a null exceptions array when @Entity and @Sortable are combined
  • [GROOVY-12091] - Regression in Groovy 5: bounded generic trait property setter remains abstract in implementing class
  • [GROOVY-12093] - Static method override on trait implementer ignored when called via this in trait body (cont'd)
  • [GROOVY-12106] - STC cannot resolve inherited static trait method from sub-trait body
  • [GROOVY-12117] - Resolution of inherited static trait method from sub-trait body is transform-order dependent

Dependency upgrade

Improvement

  • [GROOVY-11996] - Provide a groovy.truth.file.exists.enabled system property which when false reverts to Groovy 4 behavior
  • [GROOVY-12055] - Assess toLower/UpperCase calls which should use Locale.ROOT

* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)