Skip to content

Commit f268a0e

Browse files
committed
Merge branch '2.19' into 2.x
2 parents 3f44aa8 + 9279965 commit f268a0e

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/main/java/com/fasterxml/jackson/databind/deser/std/StdDeserializer.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,7 @@ protected final int _parseIntPrimitive(DeserializationContext ctxt, String text)
783783
{
784784
try {
785785
if (text.length() > 9) {
786-
ctxt.getParser().streamReadConstraints().validateIntegerLength(text.length());
786+
_streamReadConstraints(ctxt).validateIntegerLength(text.length());
787787
long l = NumberInput.parseLong(text);
788788
if (_intOverflow(l)) {
789789
Number v = (Number) ctxt.handleWeirdStringValue(Integer.TYPE, text,
@@ -861,7 +861,7 @@ protected final Integer _parseInteger(DeserializationContext ctxt, String text)
861861
{
862862
try {
863863
if (text.length() > 9) {
864-
ctxt.getParser().streamReadConstraints().validateIntegerLength(text.length());
864+
_streamReadConstraints(ctxt).validateIntegerLength(text.length());
865865
long l = NumberInput.parseLong(text);
866866
if (_intOverflow(l)) {
867867
return (Integer) ctxt.handleWeirdStringValue(Integer.class, text,
@@ -944,7 +944,7 @@ protected final long _parseLongPrimitive(JsonParser p, DeserializationContext ct
944944
*/
945945
protected final long _parseLongPrimitive(DeserializationContext ctxt, String text) throws IOException
946946
{
947-
ctxt.getParser().streamReadConstraints().validateIntegerLength(text.length());
947+
_streamReadConstraints(ctxt).validateIntegerLength(text.length());
948948
try {
949949
return NumberInput.parseLong(text);
950950
} catch (IllegalArgumentException iae) { }
@@ -1014,7 +1014,7 @@ protected final Long _parseLong(JsonParser p, DeserializationContext ctxt,
10141014
*/
10151015
protected final Long _parseLong(DeserializationContext ctxt, String text) throws IOException
10161016
{
1017-
ctxt.getParser().streamReadConstraints().validateIntegerLength(text.length());
1017+
_streamReadConstraints(ctxt).validateIntegerLength(text.length());
10181018
try {
10191019
return NumberInput.parseLong(text);
10201020
} catch (IllegalArgumentException iae) { }
@@ -1105,7 +1105,7 @@ protected final float _parseFloatPrimitive(DeserializationContext ctxt, String t
11051105
{
11061106
// 09-Dec-2023, tatu: To avoid parser having to validate input, pre-validate:
11071107
if (NumberInput.looksLikeValidNumber(text)) {
1108-
ctxt.getParser().streamReadConstraints().validateFPLength(text.length());
1108+
_streamReadConstraints(ctxt).validateFPLength(text.length());
11091109
try {
11101110
return NumberInput.parseFloat(text, false);
11111111
} catch (IllegalArgumentException iae) { }
@@ -1123,7 +1123,7 @@ protected final float _parseFloatPrimitive(JsonParser p, DeserializationContext
11231123
{
11241124
// 09-Dec-2023, tatu: To avoid parser having to validate input, pre-validate:
11251125
if (NumberInput.looksLikeValidNumber(text)) {
1126-
ctxt.getParser().streamReadConstraints().validateFPLength(text.length());
1126+
p.streamReadConstraints().validateFPLength(text.length());
11271127
try {
11281128
return NumberInput.parseFloat(text, p.isEnabled(StreamReadFeature.USE_FAST_DOUBLE_PARSER));
11291129
} catch (IllegalArgumentException iae) { }
@@ -2379,4 +2379,11 @@ protected Number _nonNullNumber(Number n) {
23792379
}
23802380
return n;
23812381
}
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+
}
23822389
}

0 commit comments

Comments
 (0)