On Wed, 23 Jun 2021 18:02:02 GMT, Julia Boes <jb...@openjdk.org> wrote:

>> `com.sun.net.httpserver.Headers` normalizes its keys to adhere to the 
>> following format: First character uppercase, all other characters lowercase, 
>> for example `"foo" -> "Foo"`. This behaviour is not consistent across the 
>> mutator methods of the class, in particular `putAll()` and `replaceAll()` do 
>> not apply normalization.
>> 
>> The suggested fix is to update the implementation of `putAll()` and to add 
>> an implementation of of the java.util.Map default method `replaceAll()`. 
>> While here, we can improve `equals()` by adding a type check and add a 
>> `toString()` implementation.
>> 
>> Additionally,  the Headers class is updated to disallow null values for keys 
>> and values.
>
> Julia Boes has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   confirm HttpExchange::sendResponseHeaders fails if key/value null

Marked as reviewed by dfuchs (Reviewer).

src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java line 115:

> 113:     @Override
> 114:     public boolean containsKey(Object key) {
> 115:         Objects.requireNonNull(key);

I haven't looked at the CSR yet - but maybe the fact that the get and contains* 
method can now throw NPE - in conformance to the Map interface specification 
for maps that do not allow null keys or null values, should be explicitly 
mentioned - in particular in the release note - as this will probably be the 
less expected behavior change.

-------------

PR: https://git.openjdk.java.net/jdk/pull/4528

Reply via email to