Fix MockMvc + HttpPutFormContentFilter issue

Issue: SPR-15753
This commit is contained in:
Rossen Stoyanchev
2017-07-11 11:43:48 +02:00
parent f6e9c47432
commit eb84547894
3 changed files with 97 additions and 10 deletions

View File

@@ -160,19 +160,20 @@ public class HttpPutFormContentFilter extends OncePerRequestFilter {
}
@Override
@Nullable
public String[] getParameterValues(String name) {
String[] queryStringValues = super.getParameterValues(name);
List<String> formValues = this.formParameters.get(name);
if (formValues == null) {
return queryStringValues;
String[] queryParam = (super.getQueryString() != null ? super.getParameterValues(name) : null);
List<String> formParam = this.formParameters.get(name);
if (formParam == null) {
return queryParam;
}
else if (queryStringValues == null) {
return formValues.toArray(new String[formValues.size()]);
else if (queryParam == null) {
return formParam.toArray(new String[formParam.size()]);
}
else {
List<String> result = new ArrayList<>(queryStringValues.length + formValues.size());
result.addAll(Arrays.asList(queryStringValues));
result.addAll(formValues);
List<String> result = new ArrayList<>(queryParam.length + formParam.size());
result.addAll(Arrays.asList(queryParam));
result.addAll(formParam);
return result.toArray(new String[result.size()]);
}
}