After updating to Boot 2.3.0, ordering of entries in a Map-based field in an @ConfigurationProperties
-annotated class as specified in application.yml are no longer preserved.
This breaks Spring Cloud Zuul when a user specifies multiple routes with overlapping paths where order is critical. Cloud's docs explicitly state that order is guaranteed to be preserved when using YAML:
https://cloud.spring.io/spring-cloud-netflix/multi/multi__router_and_filter_zuul.html#netflix-zuul-reverse-proxy (last section of that paragraph).
Here's a app with a failing test to reproduce the issue: entries-order.zip The test fails on my machine, running Windows and OpenJ9 Java 11.
I have not attempted to investigate what change in Boot caused this behavior, so I'm not sure if my OS or Java version are involved, but I'm quite confident that it's a regression in Boot that should be fixed.
Comment From: wilkinsona
Thanks, @jkuipers. This is a duplicate of #21470.
Comment From: jkuipers
Ah, should've searched before reporting. Thanks, glad that this will be addressed.