Skip to content

Commit 4324392

Browse files
committed
removed instance field to keep class thread safe
1 parent f19e691 commit 4324392

File tree

2 files changed

+9
-14
lines changed

2 files changed

+9
-14
lines changed

core/src/main/java/org/everit/json/schema/NumberSchema.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
/**
1414
* Number schema validator.
15+
* @ThreadSafe
1516
*/
1617
public class NumberSchema extends Schema {
1718

@@ -111,8 +112,6 @@ public static Builder builder() {
111112

112113
private final boolean requiresInteger;
113114

114-
private final List<ValidationException> validationExceptions;
115-
116115
public NumberSchema() {
117116
this(builder());
118117
}
@@ -133,10 +132,9 @@ public NumberSchema(final Builder builder) {
133132
this.requiresInteger = builder.requiresInteger;
134133
this.exclusiveMinimumLimit = builder.exclusiveMinimumLimit;
135134
this.exclusiveMaximumLimit = builder.exclusiveMaximumLimit;
136-
this.validationExceptions = new ArrayList<>();
137135
}
138136

139-
private void checkMaximum(final double subject) {
137+
private void checkMaximum(final double subject, final List<ValidationException> validationExceptions) {
140138
if (maximum != null) {
141139
if (exclusiveMaximum && maximum.doubleValue() <= subject) {
142140
validationExceptions.add(failure(subject + " is not less than " + maximum, "exclusiveMaximum"));
@@ -152,7 +150,7 @@ private void checkMaximum(final double subject) {
152150
}
153151
}
154152

155-
private void checkMinimum(final double subject) {
153+
private void checkMinimum(final double subject, final List<ValidationException> validationExceptions) {
156154
if (minimum != null) {
157155
if (exclusiveMinimum && subject <= minimum.doubleValue()) {
158156
validationExceptions.add(failure(subject + " is not greater than " + minimum, "exclusiveMinimum"));
@@ -167,7 +165,7 @@ private void checkMinimum(final double subject) {
167165
}
168166
}
169167

170-
private void checkMultipleOf(final double subject) {
168+
private void checkMultipleOf(final double subject, final List<ValidationException> validationExceptions) {
171169
if (multipleOf != null) {
172170
BigDecimal remainder = BigDecimal.valueOf(subject).remainder(
173171
BigDecimal.valueOf(multipleOf.doubleValue()));
@@ -212,10 +210,10 @@ public void validate(final Object subject) {
212210
throw failure(Integer.class, subject);
213211
}
214212
double intSubject = ((Number) subject).doubleValue();
215-
validationExceptions.clear();
216-
checkMinimum(intSubject);
217-
checkMaximum(intSubject);
218-
checkMultipleOf(intSubject);
213+
final List<ValidationException> validationExceptions = new ArrayList<>();
214+
checkMinimum(intSubject, validationExceptions);
215+
checkMaximum(intSubject, validationExceptions);
216+
checkMultipleOf(intSubject, validationExceptions);
219217
ValidationException.throwFor(this, validationExceptions);
220218
}
221219
}

core/src/test/java/org/everit/json/schema/NumberSchemaTest.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,10 +167,7 @@ public void longNumber() {
167167
public void equalsVerifier() {
168168
EqualsVerifier.forClass(NumberSchema.class)
169169
.withRedefinedSuperclass()
170-
.withPrefabValues(ValidationException.class,
171-
new ValidationException(null, "msg1", "key1", "loc1"),
172-
new ValidationException(null, "msg", "key2", "loc2"))
173-
.withIgnoredFields("schemaLocation", "validationExceptions")
170+
.withIgnoredFields("schemaLocation")
174171
.suppress(Warning.STRICT_INHERITANCE)
175172
.verify();
176173
}

0 commit comments

Comments
 (0)