@@ -126,29 +126,11 @@ public CustomAttributeValuesUnion deserialize(JsonParser jp, DeserializationCont
126126 try {
127127 boolean attemptParsing = true ;
128128 // ensure that we respect type coercion as set on the client ObjectMapper
129- if (List .class .equals (Integer .class )
130- || List .class .equals (Long .class )
131- || List .class .equals (Float .class )
132- || List .class .equals (Double .class )
133- || List .class .equals (Boolean .class )
134- || List .class .equals (String .class )) {
135- attemptParsing = typeCoercion ;
136- if (!attemptParsing ) {
137- attemptParsing |=
138- ((List .class .equals (Integer .class ) || List .class .equals (Long .class ))
139- && token == JsonToken .VALUE_NUMBER_INT );
140- attemptParsing |=
141- ((List .class .equals (Float .class ) || List .class .equals (Double .class ))
142- && (token == JsonToken .VALUE_NUMBER_FLOAT
143- || token == JsonToken .VALUE_NUMBER_INT ));
144- attemptParsing |=
145- (List .class .equals (Boolean .class )
146- && (token == JsonToken .VALUE_FALSE || token == JsonToken .VALUE_TRUE ));
147- attemptParsing |= (List .class .equals (String .class ) && token == JsonToken .VALUE_STRING );
148- }
129+ if (token != JsonToken .START_ARRAY ) {
130+ attemptParsing = false ;
149131 }
150132 if (attemptParsing ) {
151- tmp = tree .traverse (jp .getCodec ()).readValueAs (List . class );
133+ tmp = tree .traverse (jp .getCodec ()).readValueAs (new TypeReference <>() {} );
152134 // TODO: there is no validation against JSON schema constraints
153135 // (min, max, enum, pattern...), this does not perform a strict JSON
154136 // validation, which means the 'match' count may be higher than it should be.
@@ -207,29 +189,11 @@ public CustomAttributeValuesUnion deserialize(JsonParser jp, DeserializationCont
207189 try {
208190 boolean attemptParsing = true ;
209191 // ensure that we respect type coercion as set on the client ObjectMapper
210- if (List .class .equals (Integer .class )
211- || List .class .equals (Long .class )
212- || List .class .equals (Float .class )
213- || List .class .equals (Double .class )
214- || List .class .equals (Boolean .class )
215- || List .class .equals (String .class )) {
216- attemptParsing = typeCoercion ;
217- if (!attemptParsing ) {
218- attemptParsing |=
219- ((List .class .equals (Integer .class ) || List .class .equals (Long .class ))
220- && token == JsonToken .VALUE_NUMBER_INT );
221- attemptParsing |=
222- ((List .class .equals (Float .class ) || List .class .equals (Double .class ))
223- && (token == JsonToken .VALUE_NUMBER_FLOAT
224- || token == JsonToken .VALUE_NUMBER_INT ));
225- attemptParsing |=
226- (List .class .equals (Boolean .class )
227- && (token == JsonToken .VALUE_FALSE || token == JsonToken .VALUE_TRUE ));
228- attemptParsing |= (List .class .equals (String .class ) && token == JsonToken .VALUE_STRING );
229- }
192+ if (token != JsonToken .START_ARRAY ) {
193+ attemptParsing = false ;
230194 }
231195 if (attemptParsing ) {
232- tmp = tree .traverse (jp .getCodec ()).readValueAs (List . class );
196+ tmp = tree .traverse (jp .getCodec ()).readValueAs (new TypeReference <>() {} );
233197 // TODO: there is no validation against JSON schema constraints
234198 // (min, max, enum, pattern...), this does not perform a strict JSON
235199 // validation, which means the 'match' count may be higher than it should be.
0 commit comments