Skip to content

Commit b624b07

Browse files
authored
Merge pull request #148 from networknt/fix/min-max-validator
Fix min/max validator
2 parents 4a0c830 + 1699992 commit b624b07

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/main/java/com/networknt/schema/MaximumValidator.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ public String thresholdValue() {
7171
@Override
7272
public boolean crossesThreshold(JsonNode node) {
7373
long val = node.asLong();
74-
return node.isBigInteger() || lm < val || (excludeEqual && lm <= val);
74+
if(node.isBigInteger()) {
75+
//node.isBigInteger is not trustable, the type BigInteger doesn't mean it is a big number.
76+
return node.bigIntegerValue().compareTo(new BigInteger(String.valueOf(Long.MAX_VALUE))) > 0;
77+
}
78+
return lm < val || (excludeEqual && lm <= val);
7579
}
7680

7781
@Override

src/main/java/com/networknt/schema/MinimumValidator.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,11 @@ public String thresholdValue() {
7474
@Override
7575
public boolean crossesThreshold(JsonNode node) {
7676
long val = node.asLong();
77-
return node.isBigInteger() || lmin > val || (excluded && lmin >= val);
77+
if(node.isBigInteger()) {
78+
//node.isBigInteger is not trustable, the type BigInteger doesn't mean it is a big number.
79+
return node.bigIntegerValue().compareTo(new BigInteger(String.valueOf(Long.MIN_VALUE))) < 0;
80+
}
81+
return lmin > val || (excluded && lmin >= val);
7882
}
7983

8084
@Override

0 commit comments

Comments
 (0)