aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-06-26 16:45:10 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-06-26 16:45:10 -0700
commitcf2c1a7a99e09cc0dee531ee62a7308bd2d91da5 (patch)
tree7acf945358eebf429cc72f736df813a67a02aeba
parent914bdbbc0a929e8638eb00a5478f5f0f595b06f9 (diff)
downloadjackson-core-cf2c1a7a99e09cc0dee531ee62a7308bd2d91da5.tar.gz
Minor test addition
-rw-r--r--src/main/java/com/fasterxml/jackson/core/base/ParserBase.java2
-rw-r--r--src/test/java/com/fasterxml/jackson/core/read/NumberParsingTest.java10
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));
}
/*