@@ -250,13 +250,12 @@ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
250
250
if (_numberDeserializer != null ) {
251
251
return _numberDeserializer .deserialize (p , ctxt );
252
252
}
253
- /* [JACKSON-72]: need to allow overriding the behavior regarding
254
- * which type to use
255
- */
253
+ // Need to allow overriding the behavior regarding which type to use
256
254
if (ctxt .isEnabled (DeserializationFeature .USE_BIG_DECIMAL_FOR_FLOATS )) {
257
255
return p .getDecimalValue ();
258
256
}
259
- return p .getDoubleValue ();
257
+ // as per [databind#1453] should not assume Double but:
258
+ return p .getNumberValue ();
260
259
261
260
case JsonTokenId .ID_TRUE :
262
261
return Boolean .TRUE ;
@@ -312,7 +311,7 @@ public Object deserializeWithType(JsonParser p, DeserializationContext ctxt, Typ
312
311
if (ctxt .isEnabled (DeserializationFeature .USE_BIG_DECIMAL_FOR_FLOATS )) {
313
312
return p .getDecimalValue ();
314
313
}
315
- return Double . valueOf ( p . getDoubleValue () );
314
+ return p . getNumberValue ( );
316
315
317
316
case JsonTokenId .ID_TRUE :
318
317
return Boolean .TRUE ;
@@ -523,7 +522,7 @@ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
523
522
if (ctxt .isEnabled (DeserializationFeature .USE_BIG_DECIMAL_FOR_FLOATS )) {
524
523
return p .getDecimalValue ();
525
524
}
526
- return Double . valueOf ( p . getDoubleValue () );
525
+ return p . getNumberValue ( );
527
526
528
527
case JsonTokenId .ID_TRUE :
529
528
return Boolean .TRUE ;
@@ -566,7 +565,7 @@ public Object deserializeWithType(JsonParser p, DeserializationContext ctxt, Typ
566
565
if (ctxt .isEnabled (DeserializationFeature .USE_BIG_DECIMAL_FOR_FLOATS )) {
567
566
return p .getDecimalValue ();
568
567
}
569
- return Double . valueOf ( p . getDoubleValue () );
568
+ return p . getNumberValue ( );
570
569
571
570
case JsonTokenId .ID_TRUE :
572
571
return Boolean .TRUE ;
0 commit comments