@@ -783,7 +783,7 @@ protected final int _parseIntPrimitive(DeserializationContext ctxt, String text)
783
783
{
784
784
try {
785
785
if (text .length () > 9 ) {
786
- ctxt . getParser (). streamReadConstraints ( ).validateIntegerLength (text .length ());
786
+ _streamReadConstraints ( ctxt ).validateIntegerLength (text .length ());
787
787
long l = NumberInput .parseLong (text );
788
788
if (_intOverflow (l )) {
789
789
Number v = (Number ) ctxt .handleWeirdStringValue (Integer .TYPE , text ,
@@ -861,7 +861,7 @@ protected final Integer _parseInteger(DeserializationContext ctxt, String text)
861
861
{
862
862
try {
863
863
if (text .length () > 9 ) {
864
- ctxt . getParser (). streamReadConstraints ( ).validateIntegerLength (text .length ());
864
+ _streamReadConstraints ( ctxt ).validateIntegerLength (text .length ());
865
865
long l = NumberInput .parseLong (text );
866
866
if (_intOverflow (l )) {
867
867
return (Integer ) ctxt .handleWeirdStringValue (Integer .class , text ,
@@ -944,7 +944,7 @@ protected final long _parseLongPrimitive(JsonParser p, DeserializationContext ct
944
944
*/
945
945
protected final long _parseLongPrimitive (DeserializationContext ctxt , String text ) throws IOException
946
946
{
947
- ctxt . getParser (). streamReadConstraints ( ).validateIntegerLength (text .length ());
947
+ _streamReadConstraints ( ctxt ).validateIntegerLength (text .length ());
948
948
try {
949
949
return NumberInput .parseLong (text );
950
950
} catch (IllegalArgumentException iae ) { }
@@ -1014,7 +1014,7 @@ protected final Long _parseLong(JsonParser p, DeserializationContext ctxt,
1014
1014
*/
1015
1015
protected final Long _parseLong (DeserializationContext ctxt , String text ) throws IOException
1016
1016
{
1017
- ctxt . getParser (). streamReadConstraints ( ).validateIntegerLength (text .length ());
1017
+ _streamReadConstraints ( ctxt ).validateIntegerLength (text .length ());
1018
1018
try {
1019
1019
return NumberInput .parseLong (text );
1020
1020
} catch (IllegalArgumentException iae ) { }
@@ -1105,7 +1105,7 @@ protected final float _parseFloatPrimitive(DeserializationContext ctxt, String t
1105
1105
{
1106
1106
// 09-Dec-2023, tatu: To avoid parser having to validate input, pre-validate:
1107
1107
if (NumberInput .looksLikeValidNumber (text )) {
1108
- ctxt . getParser (). streamReadConstraints ( ).validateFPLength (text .length ());
1108
+ _streamReadConstraints ( ctxt ).validateFPLength (text .length ());
1109
1109
try {
1110
1110
return NumberInput .parseFloat (text , false );
1111
1111
} catch (IllegalArgumentException iae ) { }
@@ -1123,7 +1123,7 @@ protected final float _parseFloatPrimitive(JsonParser p, DeserializationContext
1123
1123
{
1124
1124
// 09-Dec-2023, tatu: To avoid parser having to validate input, pre-validate:
1125
1125
if (NumberInput .looksLikeValidNumber (text )) {
1126
- ctxt . getParser () .streamReadConstraints ().validateFPLength (text .length ());
1126
+ p .streamReadConstraints ().validateFPLength (text .length ());
1127
1127
try {
1128
1128
return NumberInput .parseFloat (text , p .isEnabled (StreamReadFeature .USE_FAST_DOUBLE_PARSER ));
1129
1129
} catch (IllegalArgumentException iae ) { }
@@ -2379,4 +2379,11 @@ protected Number _nonNullNumber(Number n) {
2379
2379
}
2380
2380
return n ;
2381
2381
}
2382
+
2383
+ // @since 2.19.3: NPE check for older code that doesn't get JsonParser
2384
+ protected StreamReadConstraints _streamReadConstraints (DeserializationContext ctxt ) {
2385
+ JsonParser p = ctxt .getParser ();
2386
+ // 29-Jun-2020, tatu: Should not be null, but let's be defensive
2387
+ return (p == null ) ? StreamReadConstraints .defaults () : p .streamReadConstraints ();
2388
+ }
2382
2389
}
0 commit comments