Affects: 5.3.8


In method parsePathParamValues, line 164: should name be decoded and tested once in outer loop?

private static void parsePathParamValues(String input, Charset charset, MultiValueMap<String, String> output) {
  if (StringUtils.hasText(input)) {
    int index = input.indexOf('=');
    if (index != -1) {
      String name = input.substring(0, index);
      String value = input.substring(index + 1);
      for (String v : StringUtils.commaDelimitedListToStringArray(value)) {

        // should `name` be decoded and tested once in outer loop?
        name = StringUtils.uriDecode(name, charset);
        if (StringUtils.hasText(name)) {
          output.add(name, StringUtils.uriDecode(v, charset));
        }
      }
    }
    else {
      String name = StringUtils.uriDecode(input, charset);
      if (StringUtils.hasText(name)) {
        output.add(input, "");
      }
    }
  }
}