@@ -763,7 +763,7 @@ protected final int _parseIntPrimitive(DeserializationContext ctxt, String text)
763
763
{
764
764
try {
765
765
if (text .length () > 9 ) {
766
- ctxt . getParser (). streamReadConstraints ( ).validateIntegerLength (text .length ());
766
+ _streamReadConstraints ( ctxt ).validateIntegerLength (text .length ());
767
767
long l = NumberInput .parseLong (text );
768
768
if (_intOverflow (l )) {
769
769
Number v = (Number ) ctxt .handleWeirdStringValue (Integer .TYPE , text ,
@@ -837,7 +837,7 @@ protected final Integer _parseInteger(DeserializationContext ctxt, String text)
837
837
{
838
838
try {
839
839
if (text .length () > 9 ) {
840
- ctxt . getParser (). streamReadConstraints ( ).validateIntegerLength (text .length ());
840
+ _streamReadConstraints ( ctxt ).validateIntegerLength (text .length ());
841
841
long l = NumberInput .parseLong (text );
842
842
if (_intOverflow (l )) {
843
843
return (Integer ) ctxt .handleWeirdStringValue (Integer .class , text ,
@@ -916,7 +916,7 @@ protected final long _parseLongPrimitive(JsonParser p, DeserializationContext ct
916
916
*/
917
917
protected final long _parseLongPrimitive (DeserializationContext ctxt , String text ) throws IOException
918
918
{
919
- ctxt . getParser (). streamReadConstraints ( ).validateIntegerLength (text .length ());
919
+ _streamReadConstraints ( ctxt ).validateIntegerLength (text .length ());
920
920
try {
921
921
return NumberInput .parseLong (text );
922
922
} catch (IllegalArgumentException iae ) { }
@@ -982,7 +982,7 @@ protected final Long _parseLong(JsonParser p, DeserializationContext ctxt,
982
982
*/
983
983
protected final Long _parseLong (DeserializationContext ctxt , String text ) throws IOException
984
984
{
985
- ctxt . getParser (). streamReadConstraints ( ).validateIntegerLength (text .length ());
985
+ _streamReadConstraints ( ctxt ).validateIntegerLength (text .length ());
986
986
try {
987
987
return NumberInput .parseLong (text );
988
988
} catch (IllegalArgumentException iae ) { }
@@ -1069,7 +1069,7 @@ protected final float _parseFloatPrimitive(DeserializationContext ctxt, String t
1069
1069
{
1070
1070
// 09-Dec-2023, tatu: To avoid parser having to validate input, pre-validate:
1071
1071
if (NumberInput .looksLikeValidNumber (text )) {
1072
- ctxt . getParser (). streamReadConstraints ( ).validateFPLength (text .length ());
1072
+ _streamReadConstraints ( ctxt ).validateFPLength (text .length ());
1073
1073
try {
1074
1074
return NumberInput .parseFloat (text , false );
1075
1075
} catch (IllegalArgumentException iae ) { }
@@ -1087,7 +1087,7 @@ protected final float _parseFloatPrimitive(JsonParser p, DeserializationContext
1087
1087
{
1088
1088
// 09-Dec-2023, tatu: To avoid parser having to validate input, pre-validate:
1089
1089
if (NumberInput .looksLikeValidNumber (text )) {
1090
- ctxt . getParser () .streamReadConstraints ().validateFPLength (text .length ());
1090
+ p .streamReadConstraints ().validateFPLength (text .length ());
1091
1091
try {
1092
1092
return NumberInput .parseFloat (text , p .isEnabled (StreamReadFeature .USE_FAST_DOUBLE_PARSER ));
1093
1093
} catch (IllegalArgumentException iae ) { }
@@ -2328,4 +2328,11 @@ protected Number _nonNullNumber(Number n) {
2328
2328
}
2329
2329
return n ;
2330
2330
}
2331
+
2332
+ // @since 2.19.3: NPE check for older code that doesn't get JsonParser
2333
+ protected StreamReadConstraints _streamReadConstraints (DeserializationContext ctxt ) {
2334
+ JsonParser p = ctxt .getParser ();
2335
+ // 29-Jun-2020, tatu: Should not be null, but let's be defensive
2336
+ return (p == null ) ? StreamReadConstraints .defaults () : p .streamReadConstraints ();
2337
+ }
2331
2338
}
0 commit comments