parent
e77faf7484
commit
8463eade33
|
|
@ -269,7 +269,7 @@ public class MimeType implements Comparable<MimeType>, Serializable {
|
|||
*/
|
||||
public boolean isWildcardSubtype() {
|
||||
String subtype = getSubtype();
|
||||
return WILDCARD_TYPE.equals(subtype) || subtype.startsWith("*+");
|
||||
return (WILDCARD_TYPE.equals(subtype) || subtype.startsWith("*+"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue