private V putInternal ( final K key , final V value ) { final Map < K , V > delegate = new HashMap <> ( this . delegate ) ; V existing = delegate . put ( key , value ) ; this . delegate = delegate ; return existing ; }
must be called under lock