diff --git a/spring-core/src/main/java/org/springframework/util/StringUtils.java b/spring-core/src/main/java/org/springframework/util/StringUtils.java index 80a996d481f..269257fd602 100644 --- a/spring-core/src/main/java/org/springframework/util/StringUtils.java +++ b/spring-core/src/main/java/org/springframework/util/StringUtils.java @@ -1301,7 +1301,7 @@ public abstract class StringUtils { int totalLength = coll.size() * (prefix.length() + suffix.length()) + (coll.size() - 1) * delim.length(); for (Object element : coll) { - totalLength += element.toString().length(); + totalLength += String.valueOf(element).length(); } StringBuilder sb = new StringBuilder(totalLength); diff --git a/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java b/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java index 2aae6260dd0..2b46f73a56a 100644 --- a/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java @@ -17,6 +17,7 @@ package org.springframework.util; import java.util.Arrays; +import java.util.Collections; import java.util.Locale; import java.util.Properties; @@ -777,4 +778,9 @@ class StringUtilsTests { assertThat(StringUtils.split(null, null)).isNull(); } + @Test + void collectionToDelimitedStringWithNullValuesShouldNotFail() { + assertThat(StringUtils.collectionToCommaDelimitedString(Collections.singletonList(null))).isEqualTo("null"); + } + }