On Mon, 22 Mar 2021 16:30:10 GMT, Michael McMahon <micha...@openjdk.org> wrote:

>> 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?

Yes - it's private - and that wasn't a problem before - was it? The problem was 
the put method that still put things into the map - and that will be taken care 
of if the map is unmodifiable.

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

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

Reply via email to