@@ -255,13 +255,12 @@ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
255255 if (_numberDeserializer != null ) {
256256 return _numberDeserializer .deserialize (p , ctxt );
257257 }
258- /* [JACKSON-72]: need to allow overriding the behavior regarding
259- * which type to use
260- */
258+ // Need to allow overriding the behavior regarding which type to use
261259 if (ctxt .isEnabled (DeserializationFeature .USE_BIG_DECIMAL_FOR_FLOATS )) {
262260 return p .getDecimalValue ();
263261 }
264- return p .getDoubleValue ();
262+ // as per [databind#1453] should not assume Double but:
263+ return p .getNumberValue ();
265264
266265 case JsonTokenId .ID_TRUE :
267266 return Boolean .TRUE ;
@@ -319,7 +318,7 @@ public Object deserializeWithType(JsonParser p, DeserializationContext ctxt, Typ
319318 if (ctxt .isEnabled (DeserializationFeature .USE_BIG_DECIMAL_FOR_FLOATS )) {
320319 return p .getDecimalValue ();
321320 }
322- return Double . valueOf ( p . getDoubleValue () );
321+ return p . getNumberValue ( );
323322
324323 case JsonTokenId .ID_TRUE :
325324 return Boolean .TRUE ;
@@ -523,7 +522,7 @@ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
523522 if (ctxt .isEnabled (DeserializationFeature .USE_BIG_DECIMAL_FOR_FLOATS )) {
524523 return p .getDecimalValue ();
525524 }
526- return Double . valueOf ( p . getDoubleValue () );
525+ return p . getNumberValue ( );
527526
528527 case JsonTokenId .ID_TRUE :
529528 return Boolean .TRUE ;
@@ -566,7 +565,7 @@ public Object deserializeWithType(JsonParser p, DeserializationContext ctxt, Typ
566565 if (ctxt .isEnabled (DeserializationFeature .USE_BIG_DECIMAL_FOR_FLOATS )) {
567566 return p .getDecimalValue ();
568567 }
569- return Double . valueOf ( p . getDoubleValue () );
568+ return p . getNumberValue ( );
570569
571570 case JsonTokenId .ID_TRUE :
572571 return Boolean .TRUE ;
0 commit comments