Skip to content

Commit

Permalink
fix regression caused by looksLikeValidNumber
Browse files Browse the repository at this point in the history
  • Loading branch information
pjfanning committed Mar 16, 2024
1 parent 5e109b2 commit 778d0bd
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/main/java/com/fasterxml/jackson/core/io/NumberInput.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public final class NumberInput
* @since 2.17
*/
private final static Pattern PATTERN_FLOAT = Pattern.compile(
"[+-]?[0-9]+(\\.[0-9]+)?([eE][+-]?[0-9]+)?");
"[+-]?([0-9]+)?(\\.[0-9]+)?([eE][+-]?[0-9]+)?");

/**
* Fast method for parsing unsigned integers that are known to fit into
Expand Down Expand Up @@ -578,6 +578,6 @@ public static BigInteger parseBigIntegerWithRadix(final String s, final int radi
* @since 2.17
*/
public static boolean looksLikeValidNumber(final String s) {
return (s != null) && PATTERN_FLOAT.matcher(s).matches();
return s != null && PATTERN_FLOAT.matcher(s).matches() && !s.trim().isEmpty();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,11 @@ public void testLooksLikeValidNumber()
assertTrue(NumberInput.looksLikeValidNumber("-1"));
assertTrue(NumberInput.looksLikeValidNumber("0001")); // non-JSON

// https://github.com/FasterXML/jackson-databind/issues/4435
assertTrue(NumberInput.looksLikeValidNumber(".01"));
assertTrue(NumberInput.looksLikeValidNumber("+.01"));
assertTrue(NumberInput.looksLikeValidNumber("-.01"));

assertTrue(NumberInput.looksLikeValidNumber("0.01"));
assertTrue(NumberInput.looksLikeValidNumber("-0.10"));
assertTrue(NumberInput.looksLikeValidNumber("+0.25")); // non-JSON
Expand All @@ -84,6 +89,7 @@ public void testLooksLikeValidNumber()

assertFalse(NumberInput.looksLikeValidNumber(""));
assertFalse(NumberInput.looksLikeValidNumber(" "));
assertFalse(NumberInput.looksLikeValidNumber("."));
assertFalse(NumberInput.looksLikeValidNumber("10_000"));
}
}

0 comments on commit 778d0bd

Please sign in to comment.