Skip to content

Commit 302c5d9

Browse files
committed
Fix #4263: remove generic type parameterization from ObjectArrayDeserializer
1 parent 398190e commit 302c5d9

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

release-notes/VERSION-2.x

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ Project: jackson-databind
2222
#4248: `ThrowableDeserializer` does not handle `null` well for `cause`
2323
#4250: Add input validation for `NumberDeserializers` deserializers
2424
for "stringified" FP numbers
25+
#4263: Change `ObjectArrayDeserializer` to use "generic" type parameter
26+
(`java.lang.Object`) to remove co-variant return type
2527

2628
2.16.1 (not yet released)
2729

src/main/java/com/fasterxml/jackson/databind/deser/std/ObjectArrayDeserializer.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
*/
2727
@JacksonStdImpl
2828
public class ObjectArrayDeserializer
29-
extends ContainerDeserializerBase<Object[]>
29+
extends ContainerDeserializerBase<Object>
3030
implements ContextualDeserializer
3131
{
3232
private static final long serialVersionUID = 1L;
@@ -189,7 +189,7 @@ public Object getEmptyValue(DeserializationContext ctxt) throws JsonMappingExcep
189189
*/
190190

191191
@Override
192-
public Object[] deserialize(JsonParser p, DeserializationContext ctxt)
192+
public Object deserialize(JsonParser p, DeserializationContext ctxt)
193193
throws IOException
194194
{
195195
// Ok: must point to START_ARRAY (or equivalent)
@@ -240,7 +240,7 @@ public Object[] deserialize(JsonParser p, DeserializationContext ctxt)
240240
}
241241

242242
@Override
243-
public Object[] deserializeWithType(JsonParser p, DeserializationContext ctxt,
243+
public Object deserializeWithType(JsonParser p, DeserializationContext ctxt,
244244
TypeDeserializer typeDeserializer)
245245
throws IOException
246246
{
@@ -250,11 +250,12 @@ public Object[] deserializeWithType(JsonParser p, DeserializationContext ctxt,
250250
}
251251

252252
@Override // since 2.9
253-
public Object[] deserialize(JsonParser p, DeserializationContext ctxt,
254-
Object[] intoValue) throws IOException
253+
public Object deserialize(JsonParser p, DeserializationContext ctxt,
254+
Object intoValue0) throws IOException
255255
{
256+
final Object[] intoValue = (Object[]) intoValue0;
256257
if (!p.isExpectedStartArrayToken()) {
257-
Object[] arr = handleNonArray(p, ctxt);
258+
Object[] arr = (Object[]) handleNonArray(p, ctxt);
258259
if (arr == null) {
259260
return intoValue;
260261
}
@@ -324,7 +325,7 @@ protected Byte[] deserializeFromBase64(JsonParser p, DeserializationContext ctxt
324325
return result;
325326
}
326327

327-
protected Object[] handleNonArray(JsonParser p, DeserializationContext ctxt)
328+
protected Object handleNonArray(JsonParser p, DeserializationContext ctxt)
328329
throws IOException
329330
{
330331
// Can we do implicit coercion to a single-element array still?
@@ -342,7 +343,7 @@ protected Object[] handleNonArray(JsonParser p, DeserializationContext ctxt)
342343
// Second: empty (and maybe blank) String
343344
return _deserializeFromString(p, ctxt);
344345
}
345-
return (Object[]) ctxt.handleUnexpectedToken(_containerType, p);
346+
return ctxt.handleUnexpectedToken(_containerType, p);
346347
}
347348

348349
Object value;

src/main/java/com/fasterxml/jackson/databind/deser/std/StdKeyDeserializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ protected long _parseLong(String key) throws IllegalArgumentException {
260260
}
261261

262262
protected double _parseDouble(String key) throws IllegalArgumentException {
263-
return NumberInput.parseDouble(key);
263+
return NumberInput.parseDouble(key, false);
264264
}
265265

266266
// @since 2.9

0 commit comments

Comments
 (0)