Spring Cloud recently added a CachedRandomPropertySource to add support for cached random values. Our current logic in SpringConfigurationPropertySource will not apply to this source, and since it's non-iterable ConfigurationPropertyState.UNKNOWN will always be returned.

This means that the usual optimizations that we apply to configuration property binding will not apply in Spring Cloud applications.

Comment From: philwebb

@ryanjbaxter @spencergibb I found a way to (sort of) fix this without needing to create a CachedRandomPropertySource in Boot. We now assumed that if the source wraps a RandomPropertySource then the name of the source must be the name of the prefix. I think that should cover both cases.

I've also opened #21659 to see if we can drop adapting random sources all together.