diff --git a/codec/src/main/java/io/netty/handler/codec/DefaultHeaders.java b/codec/src/main/java/io/netty/handler/codec/DefaultHeaders.java index 459b976eb7..b54015e8e9 100644 --- a/codec/src/main/java/io/netty/handler/codec/DefaultHeaders.java +++ b/codec/src/main/java/io/netty/handler/codec/DefaultHeaders.java @@ -899,8 +899,8 @@ public class DefaultHeaders> implements Headers for (int i = 0; i < values.size(); ++i) { builder.append(separator); builder.append(name).append(": ").append(values.get(i)); + separator = ", "; } - separator = ", "; } return builder.append(']').toString(); } diff --git a/codec/src/test/java/io/netty/handler/codec/DefaultHeadersTest.java b/codec/src/test/java/io/netty/handler/codec/DefaultHeadersTest.java index 54836b7d11..d6d32b429c 100644 --- a/codec/src/test/java/io/netty/handler/codec/DefaultHeadersTest.java +++ b/codec/src/test/java/io/netty/handler/codec/DefaultHeadersTest.java @@ -450,4 +450,26 @@ public class DefaultHeadersTest { headers.set(headers); assertEquals(1, headers.size()); } + + @Test + public void testToString() { + TestDefaultHeaders headers = newInstance(); + headers.add(of("name1"), of("value1")); + headers.add(of("name1"), of("value2")); + headers.add(of("name2"), of("value3")); + assertEquals("TestDefaultHeaders[name1: value1, name1: value2, name2: value3]", headers.toString()); + + headers = newInstance(); + headers.add(of("name1"), of("value1")); + headers.add(of("name2"), of("value2")); + headers.add(of("name3"), of("value3")); + assertEquals("TestDefaultHeaders[name1: value1, name2: value2, name3: value3]", headers.toString()); + + headers = newInstance(); + headers.add(of("name1"), of("value1")); + assertEquals("TestDefaultHeaders[name1: value1]", headers.toString()); + + headers = newInstance(); + assertEquals("TestDefaultHeaders[]", headers.toString()); + } }