Skip to content

Commit 3eb6579

Browse files
Louis Ryannmittler
authored andcommitted
Make headers.set(self) a no-op instead of throwing. Makes it consistent with setAll
Motivation: Makes the API contract of headers more consistent and simpler. Modifications: If self is passed to set then simply return Result: set and setAll will be consistent
1 parent 6504d52 commit 3eb6579

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

codec-http/src/test/java/io/netty/handler/codec/http/HttpHeadersTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,11 @@ public void testAddSelf() {
7979
headers.add(headers);
8080
}
8181

82-
@Test(expected = IllegalArgumentException.class)
83-
public void testSetSelf() {
82+
@Test
83+
public void testSetSelfIsNoOp() {
8484
HttpHeaders headers = new DefaultHttpHeaders(false);
85+
headers.add("name", "value");
8586
headers.set(headers);
87+
assertEquals(1, headers.size());
8688
}
8789
}

codec/src/main/java/io/netty/handler/codec/DefaultHeaders.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ public T setShort(K name, short value) {
543543
public T set(Headers<? extends K, ? extends V, ?> headers) {
544544
checkNotNull(headers, "headers");
545545
if (headers == this) {
546-
throw new IllegalArgumentException("can't add to itself.");
546+
return thisT();
547547
}
548548
clear();
549549
if (headers instanceof DefaultHeaders) {

codec/src/test/java/io/netty/handler/codec/DefaultHeadersTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,9 +390,11 @@ public void testAddSelf() {
390390
headers.add(headers);
391391
}
392392

393-
@Test(expected = IllegalArgumentException.class)
394-
public void testSetSelf() {
393+
@Test
394+
public void testSetSelfIsNoOp() {
395395
TestDefaultHeaders headers = newInstance();
396+
headers.add("name", "value");
396397
headers.set(headers);
398+
assertEquals(1, headers.size());
397399
}
398400
}

0 commit comments

Comments
 (0)