diff --git a/ebean-api/src/main/java/io/ebean/bean/ToStringBuilder.java b/ebean-api/src/main/java/io/ebean/bean/ToStringBuilder.java index 2d57ab944..1dd87495a 100644 --- a/ebean-api/src/main/java/io/ebean/bean/ToStringBuilder.java +++ b/ebean-api/src/main/java/io/ebean/bean/ToStringBuilder.java @@ -125,10 +125,12 @@ public final class ToStringBuilder { sb.append("[]"); return; } - int collectionPos = 0; + boolean firstElement = true; sb.append("["); for (Object o : c) { - if (collectionPos++ > 0) { + if (firstElement) { + firstElement = false; + } else { sb.append(", "); } value(o); diff --git a/ebean-api/src/test/java/io/ebean/bean/ToStringBuilderTest.java b/ebean-api/src/test/java/io/ebean/bean/ToStringBuilderTest.java index 1a251e4bd..b00fc30bb 100644 --- a/ebean-api/src/test/java/io/ebean/bean/ToStringBuilderTest.java +++ b/ebean-api/src/test/java/io/ebean/bean/ToStringBuilderTest.java @@ -29,6 +29,34 @@ class ToStringBuilderTest { assertThat(builder.toString()).isEqualTo("Object@0(a:1, b:B)"); } + @Test + void add_referenceBeanCollection_expect_nothingAdded() { + ToStringBuilder builder = new ToStringBuilder(); + builder.add("ref", new BeanList<>(null)); + assertThat(builder.toString()).isEqualTo(""); + } + + @Test + void addCollection_some() { + ToStringBuilder builder = new ToStringBuilder(); + builder.addCollection( new BeanList<>(List.of("A","B"))); + assertThat(builder.toString()).isEqualTo("[A, B]"); + } + + @Test + void addCollection_null() { + ToStringBuilder builder = new ToStringBuilder(); + builder.addCollection(null); + assertThat(builder.toString()).isEqualTo("[]"); + } + + @Test + void addCollection_empty() { + ToStringBuilder builder = new ToStringBuilder(); + builder.addCollection(Collections.emptyList()); + assertThat(builder.toString()).isEqualTo("[]"); + } + @Test void flatBean() { Recurse instance0 = new Recurse(42, "java");