Polishing contribution

Closes gh-30192
This commit is contained in:
rstoyanchev
2023-04-10 21:24:25 +01:00
parent e77faf7484
commit 8463eade33
4 changed files with 20 additions and 16 deletions

View File

@@ -104,14 +104,17 @@ public class FormHttpMessageReader extends LoggingCodecSupport
@Override
public boolean canRead(ResolvableType elementType, @Nullable MediaType mediaType) {
if (mediaType == null || MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType)) {
if (MultiValueMap.class.isAssignableFrom(elementType.toClass()) &&
elementType.hasUnresolvableGenerics()) {
return true;
}
return MULTIVALUE_STRINGS_TYPE.isAssignableFrom(elementType);
if (!supportsMediaType(mediaType)) {
return false;
}
return false;
if (MultiValueMap.class.isAssignableFrom(elementType.toClass()) && elementType.hasUnresolvableGenerics()) {
return true;
}
return MULTIVALUE_STRINGS_TYPE.isAssignableFrom(elementType);
}
private static boolean supportsMediaType(@Nullable MediaType mediaType) {
return (mediaType == null || MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType));
}
@Override

View File

@@ -97,14 +97,16 @@ public abstract class AbstractJackson2Decoder extends Jackson2CodecSupport imple
@Override
public boolean canDecode(ResolvableType elementType, @Nullable MimeType mimeType) {
// Skip String: CharSequenceDecoder + "*/*" comes after
if (CharSequence.class.isAssignableFrom(elementType.toClass()) || !supportsMimeType(mimeType)) {
if (!supportsMimeType(mimeType)) {
return false;
}
ObjectMapper mapper = selectObjectMapper(elementType, mimeType);
if (mapper == null) {
return false;
}
if (CharSequence.class.isAssignableFrom(elementType.toClass())) {
return false;
}
JavaType javaType = mapper.constructType(elementType.getType());
if (!logger.isDebugEnabled()) {
return mapper.canDeserialize(javaType);

View File

@@ -81,6 +81,11 @@ public class MultipartHttpMessageReader extends LoggingCodecSupport
return MIME_TYPES;
}
@Override
public boolean canRead(ResolvableType elementType, @Nullable MediaType mediaType) {
return supportsMediaType(mediaType) && MULTIPART_VALUE_TYPE.isAssignableFrom(elementType);
}
private boolean supportsMediaType(@Nullable MediaType mediaType) {
if (mediaType == null) {
return true;
@@ -93,12 +98,6 @@ public class MultipartHttpMessageReader extends LoggingCodecSupport
return false;
}
@Override
public boolean canRead(ResolvableType elementType, @Nullable MediaType mediaType) {
return supportsMediaType(mediaType) && MULTIPART_VALUE_TYPE.isAssignableFrom(elementType);
}
@Override
public Flux<MultiValueMap<String, Part>> read(ResolvableType elementType,
ReactiveHttpInputMessage message, Map<String, Object> hints) {