File tree Expand file tree Collapse file tree 4 files changed +20
-16
lines changed
spring-core/src/main/java/org/springframework/util
spring-web/src/main/java/org/springframework/http/codec Expand file tree Collapse file tree 4 files changed +20
-16
lines changed Original file line number Diff line number Diff line change @@ -269,7 +269,7 @@ public boolean isWildcardType() {
269
269
*/
270
270
public boolean isWildcardSubtype () {
271
271
String subtype = getSubtype ();
272
- return WILDCARD_TYPE .equals (subtype ) || subtype .startsWith ("*+" );
272
+ return ( WILDCARD_TYPE .equals (subtype ) || subtype .startsWith ("*+" ) );
273
273
}
274
274
275
275
/**
Original file line number Diff line number Diff line change @@ -104,14 +104,17 @@ public int getMaxInMemorySize() {
104
104
105
105
@ Override
106
106
public boolean canRead (ResolvableType elementType , @ Nullable MediaType mediaType ) {
107
- if (mediaType == null || MediaType .APPLICATION_FORM_URLENCODED .isCompatibleWith (mediaType )) {
108
- if (MultiValueMap .class .isAssignableFrom (elementType .toClass ()) &&
109
- elementType .hasUnresolvableGenerics ()) {
110
- return true ;
111
- }
112
- return MULTIVALUE_STRINGS_TYPE .isAssignableFrom (elementType );
107
+ if (!supportsMediaType (mediaType )) {
108
+ return false ;
109
+ }
110
+ if (MultiValueMap .class .isAssignableFrom (elementType .toClass ()) && elementType .hasUnresolvableGenerics ()) {
111
+ return true ;
113
112
}
114
- return false ;
113
+ return MULTIVALUE_STRINGS_TYPE .isAssignableFrom (elementType );
114
+ }
115
+
116
+ private static boolean supportsMediaType (@ Nullable MediaType mediaType ) {
117
+ return (mediaType == null || MediaType .APPLICATION_FORM_URLENCODED .isCompatibleWith (mediaType ));
115
118
}
116
119
117
120
@ Override
Original file line number Diff line number Diff line change @@ -97,14 +97,16 @@ public int getMaxInMemorySize() {
97
97
98
98
@ Override
99
99
public boolean canDecode (ResolvableType elementType , @ Nullable MimeType mimeType ) {
100
- // Skip String: CharSequenceDecoder + "*/*" comes after
101
- if (CharSequence .class .isAssignableFrom (elementType .toClass ()) || !supportsMimeType (mimeType )) {
100
+ if (!supportsMimeType (mimeType )) {
102
101
return false ;
103
102
}
104
103
ObjectMapper mapper = selectObjectMapper (elementType , mimeType );
105
104
if (mapper == null ) {
106
105
return false ;
107
106
}
107
+ if (CharSequence .class .isAssignableFrom (elementType .toClass ())) {
108
+ return false ;
109
+ }
108
110
JavaType javaType = mapper .constructType (elementType .getType ());
109
111
if (!logger .isDebugEnabled ()) {
110
112
return mapper .canDeserialize (javaType );
Original file line number Diff line number Diff line change @@ -81,6 +81,11 @@ public List<MediaType> getReadableMediaTypes() {
81
81
return MIME_TYPES ;
82
82
}
83
83
84
+ @ Override
85
+ public boolean canRead (ResolvableType elementType , @ Nullable MediaType mediaType ) {
86
+ return supportsMediaType (mediaType ) && MULTIPART_VALUE_TYPE .isAssignableFrom (elementType );
87
+ }
88
+
84
89
private boolean supportsMediaType (@ Nullable MediaType mediaType ) {
85
90
if (mediaType == null ) {
86
91
return true ;
@@ -93,12 +98,6 @@ private boolean supportsMediaType(@Nullable MediaType mediaType) {
93
98
return false ;
94
99
}
95
100
96
- @ Override
97
- public boolean canRead (ResolvableType elementType , @ Nullable MediaType mediaType ) {
98
- return supportsMediaType (mediaType ) && MULTIPART_VALUE_TYPE .isAssignableFrom (elementType );
99
- }
100
-
101
-
102
101
@ Override
103
102
public Flux <MultiValueMap <String , Part >> read (ResolvableType elementType ,
104
103
ReactiveHttpInputMessage message , Map <String , Object > hints ) {
You can’t perform that action at this time.
0 commit comments