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