After update from Boot 3.5.0 to 3.5.1, the following arrangement now throws on startup:
@ConfigurationProperties(prefix = "saml")
public @Data class SamlProperties {
private List<Metadata> additionalMetadata = new ArrayList<>();
static @Data class Metadata {
private Set<String> domains = new HashSet<>();
}
}
saml.additional-metadata:
- domains: [example3.com]
org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'saml.additional-metadata[0].domains' to java.util.Set<java.lang.String>
at org.springframework.boot.context.properties.bind.Binder.handleBindError(Binder.java:399)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:361)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$5(Binder.java:485)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:124)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:112)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:68)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$6(Binder.java:488)
at org.springframework.boot.context.properties.bind.Binder.fromDataObjectBinders(Binder.java:493)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$7(Binder.java:487)
at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:606)
at org.springframework.boot.context.properties.bind.Binder$Context.withDataObject(Binder.java:592)
at org.springframework.boot.context.properties.bind.Binder.bindDataObject(Binder.java:487)
at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:426)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:357)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$2(Binder.java:447)
at org.springframework.boot.context.properties.bind.Binder$Context.withSource(Binder.java:582)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$3(Binder.java:448)
at org.springframework.boot.context.properties.bind.IndexedElementsBinder.bindIndexed(IndexedElementsBinder.java:115)
at org.springframework.boot.context.properties.bind.IndexedElementsBinder.bindIndexed(IndexedElementsBinder.java:91)
at org.springframework.boot.context.properties.bind.IndexedElementsBinder.bindIndexed(IndexedElementsBinder.java:75)
at org.springframework.boot.context.properties.bind.CollectionBinder.bindAggregate(CollectionBinder.java:48)
at org.springframework.boot.context.properties.bind.AggregateBinder.bind(AggregateBinder.java:56)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$4(Binder.java:450)
at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:606)
at org.springframework.boot.context.properties.bind.Binder.bindAggregate(Binder.java:450)
at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:411)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:357)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$5(Binder.java:485)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:124)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:112)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:68)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$6(Binder.java:488)
at org.springframework.boot.context.properties.bind.Binder.fromDataObjectBinders(Binder.java:493)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$7(Binder.java:487)
at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:606)
at org.springframework.boot.context.properties.bind.Binder$Context.withDataObject(Binder.java:592)
at org.springframework.boot.context.properties.bind.Binder.bindDataObject(Binder.java:487)
at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:426)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:357)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:345)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:275)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:262)
at org.springframework.boot.context.properties.ConfigurationPropertiesBinder.bind(ConfigurationPropertiesBinder.java:94)
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.bind(ConfigurationPropertiesBindingPostProcessor.java:96)
... 206 more
Caused by: java.lang.IllegalArgumentException: 'name' must not be null
at org.springframework.util.Assert.notNull(Assert.java:181)
at org.springframework.boot.context.properties.source.ConfigurationPropertyName.isAncestorOf(ConfigurationPropertyName.java:296)
at org.springframework.boot.context.properties.source.FilteredIterableConfigurationPropertiesSource.<init>(FilteredIterableConfigurationPropertiesSource.java:44)
at org.springframework.boot.context.properties.source.IterableConfigurationPropertySource.filter(IterableConfigurationPropertySource.java:69)
at org.springframework.boot.context.properties.bind.IndexedElementsBinder.bindIndexed(IndexedElementsBinder.java:110)
at org.springframework.boot.context.properties.bind.IndexedElementsBinder.bindIndexed(IndexedElementsBinder.java:91)
at org.springframework.boot.context.properties.bind.IndexedElementsBinder.bindIndexed(IndexedElementsBinder.java:75)
at org.springframework.boot.context.properties.bind.CollectionBinder.bindAggregate(CollectionBinder.java:48)
at org.springframework.boot.context.properties.bind.AggregateBinder.bind(AggregateBinder.java:56)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$4(Binder.java:450)
at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:606)
at org.springframework.boot.context.properties.bind.Binder.bindAggregate(Binder.java:450)
at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:411)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:357)
... 248 more
The same error occurs with other similarly nested structures.
Comment From: philwebb
Sorry about that. Duplicates #46032 and we're going to cut a new release immediately.