code: @SuppressWarnings("unchecked")
    public static <K, V> MultiValueMap<K, V> unmodifiableMultiValueMap(
        final MultiValueMap<? extends K, ? extends V> map) {
      Assert.notNull(map, "'map' must not be null");
      final Map<K, List<V>> result = new LinkedHashMap<>(map.size());
      map.forEach((key, value) -> {
        final List<? extends V> values = Collections.unmodifiableList(value);
        result.put(key, (List<V>) values);
      });
      final Map<K, List<V>> unmodifiableMap = Collections.unmodifiableMap(result);
      return CollectionUtils.toMultiValueMap(unmodifiableMap);
    }
docs: Return an unmodifiable view of the specified multi-value map.
  
  @param map the map for which an unmodifiable view is to be returned.
  @return an unmodifiable view of the specified multi-value map.
  @since 3.1