Relax type check in FormHttpMessage(Reader|Writer)

Issue: SPR-16055
This commit is contained in:
Sebastien Deleuze
2017-10-12 17:48:42 +02:00
parent ef0e4dc56a
commit 2962f085e5
4 changed files with 14 additions and 3 deletions

View File

@@ -77,8 +77,9 @@ public class FormHttpMessageReader implements HttpMessageReader<MultiValueMap<St
@Override
public boolean canRead(ResolvableType elementType, @Nullable MediaType mediaType) {
return (MULTIVALUE_TYPE.isAssignableFrom(elementType) &&
(mediaType == null || MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType)));
return (MULTIVALUE_TYPE.isAssignableFrom(elementType) ||
(elementType.hasUnresolvableGenerics() && MultiValueMap.class.isAssignableFrom(elementType.resolve()))) &&
(mediaType == null || MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType));
}
@Override

View File

@@ -77,7 +77,8 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@Override
public boolean canWrite(ResolvableType elementType, @Nullable MediaType mediaType) {
return MULTIVALUE_TYPE.isAssignableFrom(elementType) &&
return (MULTIVALUE_TYPE.isAssignableFrom(elementType) ||
(elementType.hasUnresolvableGenerics() && MultiValueMap.class.isAssignableFrom(elementType.resolve()))) &&
(mediaType == null || MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType));
}