@@ -844,13 +844,14 @@ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
844
844
try {
845
845
if (!_isIntNumber (text )) {
846
846
if (ctxt .isEnabled (DeserializationFeature .USE_BIG_DECIMAL_FOR_FLOATS )) {
847
- return NumberInput .parseBigDecimal (text );
847
+ return NumberInput .parseBigDecimal (
848
+ text , p .isEnabled (StreamReadFeature .USE_FAST_BIG_NUMBER_PARSER ));
848
849
}
849
850
return Double .valueOf (
850
851
NumberInput .parseDouble (text , p .isEnabled (StreamReadFeature .USE_FAST_DOUBLE_PARSER )));
851
852
}
852
853
if (ctxt .isEnabled (DeserializationFeature .USE_BIG_INTEGER_FOR_INTS )) {
853
- return NumberInput .parseBigInteger (text );
854
+ return NumberInput .parseBigInteger (text , p . isEnabled ( StreamReadFeature . USE_FAST_BIG_NUMBER_PARSER ) );
854
855
}
855
856
long value = NumberInput .parseLong (text );
856
857
if (!ctxt .isEnabled (DeserializationFeature .USE_LONG_FOR_INTS )) {
@@ -961,7 +962,7 @@ public BigInteger deserialize(JsonParser p, DeserializationContext ctxt) throws
961
962
return getNullValue (ctxt );
962
963
}
963
964
try {
964
- return NumberInput .parseBigInteger (text );
965
+ return NumberInput .parseBigInteger (text , p . isEnabled ( StreamReadFeature . USE_FAST_BIG_NUMBER_PARSER ) );
965
966
} catch (IllegalArgumentException iae ) { }
966
967
return (BigInteger ) ctxt .handleWeirdStringValue (_valueClass , text ,
967
968
"not a valid representation" );
@@ -1030,7 +1031,7 @@ public BigDecimal deserialize(JsonParser p, DeserializationContext ctxt)
1030
1031
return getNullValue (ctxt );
1031
1032
}
1032
1033
try {
1033
- return NumberInput .parseBigDecimal (text );
1034
+ return NumberInput .parseBigDecimal (text , p . isEnabled ( StreamReadFeature . USE_FAST_BIG_NUMBER_PARSER ) );
1034
1035
} catch (IllegalArgumentException iae ) { }
1035
1036
return (BigDecimal ) ctxt .handleWeirdStringValue (_valueClass , text ,
1036
1037
"not a valid representation" );
0 commit comments