diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-06-26 16:45:10 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-06-26 16:45:10 -0700 |
commit | cf2c1a7a99e09cc0dee531ee62a7308bd2d91da5 (patch) | |
tree | 7acf945358eebf429cc72f736df813a67a02aeba | |
parent | 914bdbbc0a929e8638eb00a5478f5f0f595b06f9 (diff) | |
download | jackson-core-cf2c1a7a99e09cc0dee531ee62a7308bd2d91da5.tar.gz |
Minor test addition
-rw-r--r-- | src/main/java/com/fasterxml/jackson/core/base/ParserBase.java | 2 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/core/read/NumberParsingTest.java | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/com/fasterxml/jackson/core/base/ParserBase.java b/src/main/java/com/fasterxml/jackson/core/base/ParserBase.java index 52984a8f..297c23d4 100644 --- a/src/main/java/com/fasterxml/jackson/core/base/ParserBase.java +++ b/src/main/java/com/fasterxml/jackson/core/base/ParserBase.java @@ -756,7 +756,7 @@ public abstract class ParserBase extends ParserMinimalBase if (_currToken == JsonToken.VALUE_NUMBER_INT) { final int len = _intLength; // First: optimization for simple int - if (len <= 9) { + if (len <= 9) { int i = _textBuffer.contentsAsInt(_numberNegative); _numberInt = i; _numTypesValid = NR_INT; diff --git a/src/test/java/com/fasterxml/jackson/core/read/NumberParsingTest.java b/src/test/java/com/fasterxml/jackson/core/read/NumberParsingTest.java index bb43aa8d..3ee033c7 100644 --- a/src/test/java/com/fasterxml/jackson/core/read/NumberParsingTest.java +++ b/src/test/java/com/fasterxml/jackson/core/read/NumberParsingTest.java @@ -268,7 +268,10 @@ public class NumberParsingTest public void testLongBoundsChecks() throws Exception { String minLong = String.valueOf(Long.MIN_VALUE).substring(1); + String belowMinLong = BigInteger.valueOf(Long.MIN_VALUE).subtract(BigInteger.ONE) + .toString().substring(1); String maxLong = String.valueOf(Long.MAX_VALUE); + String aboveMaxLong = BigInteger.valueOf(Long.MAX_VALUE).add(BigInteger.ONE).toString(); final String VALUE_491 = "1323372036854775807"; // is within range (JACKSON-491) final String OVERFLOW = "9999999999999999999"; // and this one is clearly out @@ -276,8 +279,11 @@ public class NumberParsingTest assertTrue(NumberInput.inLongRange(maxLong, false)); assertTrue(NumberInput.inLongRange(VALUE_491, true)); assertTrue(NumberInput.inLongRange(VALUE_491, false)); + assertFalse(NumberInput.inLongRange(OVERFLOW, false)); assertFalse(NumberInput.inLongRange(OVERFLOW, true)); + assertFalse(NumberInput.inLongRange(belowMinLong, true)); + assertFalse(NumberInput.inLongRange(aboveMaxLong, false)); char[] cbuf = minLong.toCharArray(); assertTrue(NumberInput.inLongRange(cbuf, 0, cbuf.length, true)); @@ -286,9 +292,13 @@ public class NumberParsingTest cbuf = VALUE_491.toCharArray(); assertTrue(NumberInput.inLongRange(cbuf, 0, cbuf.length, true)); assertTrue(NumberInput.inLongRange(cbuf, 0, cbuf.length, false)); + cbuf = OVERFLOW.toCharArray(); assertFalse(NumberInput.inLongRange(cbuf, 0, cbuf.length, true)); assertFalse(NumberInput.inLongRange(cbuf, 0, cbuf.length, false)); + + cbuf = aboveMaxLong.toCharArray(); + assertFalse(NumberInput.inLongRange(cbuf, 0, cbuf.length, false)); } /* |