RFR: 8263506: Make sun.net.httpserver.UnmodifiableHeaders unmodifiable

Michael McMahon michaelm at openjdk.java.net
Mon Mar 22 16:32:44 UTC 2021


On Mon, 22 Mar 2021 16:23:27 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:

>> The fix makes the map in sun.net.httpserver.UnmodifiableHeaders unmodifiable by wrapping it in an unmodifiable view.
>
> src/jdk.httpserver/share/classes/sun/net/httpserver/UnmodifiableHeaders.java line 34:
> 
>> 32: public class UnmodifiableHeaders extends Headers {
>> 33: 
>> 34:         private Map<String, List<String>> map;
> 
> How about:
> 
> private final Headers headers;
> private final Map<String, List<String>> map;
> 
> public UnmodifiableHeaders(Headers headers) {
>     this.map = Collections.unmodifiableMap(headers);
>     this.headers = headers;
> }
> 
> Then getFirst simply becomes `return headers.getFirst(key);`

I guess this presumes that no reference to `headers` escapes? Can that be assumed?

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

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


More information about the net-dev mailing list