On Tue, 6 Apr 2021 13:10:59 GMT, Julia Boes <[email protected]> wrote:
>> The fix makes the map in sun.net.httpserver.UnmodifiableHeaders unmodifiable
>> by wrapping it in an unmodifiable view.
>
> Julia Boes has updated the pull request with a new target base due to a merge
> or a rebase. The incremental webrev excludes the unrelated changes brought in
> by the merge/rebase. The pull request contains 10 additional commits since
> the last revision:
>
> - Account for null values and change type in constructor
> - Merge branch 'master' into 8263506
> - Merge branch 'master' into 8263506
> - move constructor call in ExchangeImpl and fix indentation
> - wrap List<String> with unmodifiable map and update test
> - remove map wrapping
> - fix imports
> - Merge branch 'master' into 8263506
> - fix UnmodifiableHeaders impl
> - add initial test
src/jdk.httpserver/share/classes/sun/net/httpserver/UnmodifiableHeaders.java
line 41:
> 39: var unmodHeaders = new Headers();
> 40: h.forEach((k, v) -> {
> 41: List<String> l = v == null ? List.of() :
> Collections.unmodifiableList(v);
If v is `null` it should be mapped to `null` - not to `List.of()`, to preserve
map equality.
test/jdk/com/sun/net/httpserver/UnmodifiableHeadersTest.java line 89:
> 87: }
> 88:
> 89: static void assertUnmodifiableList(Headers headers) {
Maybe the test should be extended to double check that:
var headers = ...
var unmodifiableHeaders = new UnmodifiableHeaders(headers);
assertEquals(unmodifiableHeaders, headers);
assertEquals(unmodifiableHeaders.hashCode(), headers.hashCode());
-------------
PR: https://git.openjdk.java.net/jdk/pull/3032