diff --git a/spring-boot-project/spring-boot-dependencies/pom.xml b/spring-boot-project/spring-boot-dependencies/pom.xml index 3e58173556..f0d3dc7678 100644 --- a/spring-boot-project/spring-boot-dependencies/pom.xml +++ b/spring-boot-project/spring-boot-dependencies/pom.xml @@ -141,7 +141,7 @@ 1.7.25 1.19 6.6.2 - 5.0.3.RELEASE + 5.0.4.BUILD-SNAPSHOT 2.0.2.RELEASE 4.0.0.RELEASE 2.0.1.RELEASE diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/bind/CollectionBinder.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/bind/CollectionBinder.java index 273c41a017..c90080f0b6 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/bind/CollectionBinder.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/bind/CollectionBinder.java @@ -40,7 +40,7 @@ class CollectionBinder extends IndexedElementsBinder> { AggregateElementBinder elementBinder) { Class collectionType = (target.getValue() == null ? target.getType().resolve(Object.class) : List.class); - ResolvableType aggregateType = forClassWithGenerics(List.class, + ResolvableType aggregateType = ResolvableType.forClassWithGenerics(List.class, target.getType().asCollection().getGenerics()); ResolvableType elementType = target.getType().asCollection().getGeneric(); IndexedCollectionSupplier result = new IndexedCollectionSupplier( diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/bind/IndexedElementsBinder.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/bind/IndexedElementsBinder.java index eb260141fd..601a7f4505 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/bind/IndexedElementsBinder.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/bind/IndexedElementsBinder.java @@ -83,8 +83,8 @@ abstract class IndexedElementsBinder extends AggregateBinder { if (property != null) { Object aggregate = convert(property.getValue(), aggregateType, target.getAnnotations()); - ResolvableType collectionType = forClassWithGenerics( - collection.get().getClass(), elementType); + ResolvableType collectionType = ResolvableType + .forClassWithGenerics(collection.get().getClass(), elementType); Collection elements = convert(aggregate, collectionType); collection.get().addAll(elements); } @@ -145,17 +145,6 @@ abstract class IndexedElementsBinder extends AggregateBinder { .convert(conversionService, value); } - // Work around for SPR-16456 - protected static ResolvableType forClassWithGenerics(Class type, - ResolvableType... generics) { - ResolvableType[] resolvedGenerics = new ResolvableType[generics.length]; - for (int i = 0; i < generics.length; i++) { - resolvedGenerics[i] = forClassWithGenerics(generics[i].resolve(Object.class), - generics[i].getGenerics()); - } - return ResolvableType.forClassWithGenerics(type, resolvedGenerics); - } - /** * {@link AggregateBinder.AggregateSupplier AggregateSupplier} for an indexed * collection.