codeconsole commented on code in PR #16771:
URL: https://github.com/apache/grails-core/pull/16771#discussion_r4393898345
##########
grails-bootstrap/src/main/groovy/org/grails/config/NavigableMap.groovy:
##########
@@ -152,16 +152,22 @@ class NavigableMap implements Map<String, Object>,
Cloneable {
Object sourceKeyObject = entry.key
Object sourceValue = entry.value
String sourceKey = String.valueOf(sourceKeyObject)
+ if (sourceValue instanceof HeldList && !targetMap.is(rootMap)) {
Review Comment:
Fixed in 6ed67380ea. A held list is now skipped only when the map it comes
in also holds an indexed entry beside it for each of its elements, `rows[0]`
and on, which write the list element by element, as a YAML source holds them. A
held list that arrives without them, as in your `other.merge([app: [rows:
config.app.rows]])`, is merged as a list, as any other list is. "A list written
by indexed keys is merged into another config as a list" in
`PropertySourcesConfigSpec` reads it back through `navigate`, `getProperty(key,
List)` and dot notation. It fails at 4ee8c8d42d, the previous head. Both
modules' suites pass, including the layered YAML case that the skip exists for.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]