Skip to content

Commit 44b7104

Browse files
authored
Merge pull request #111 from avaje/feature/fix-classlevel
Treat null field as empty string for class level validations
2 parents ed55ebe + def047a commit 44b7104

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

blackbox-test/src/test/java/example/avaje/crossfield/ATarnishedTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ void valid() {
2323
void invalid_classLevelValidation() {
2424
var violation = one(new ATarnished("ok", 49, 50));
2525
assertThat(violation.message()).isEqualTo("put these foolish ambitions to rest");
26-
assertThat(violation.path()).isEqualTo("null");
27-
assertThat(violation.field()).isNull();
26+
assertThat(violation.path()).isEqualTo("");
27+
assertThat(violation.field()).isEqualTo("");
2828
}
2929

3030

validator/src/main/java/io/avaje/validation/core/DRequest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,17 @@ private String currentPath() {
5252
@Override
5353
public void addViolation(ValidationContext.Message msg, String propertyName) {
5454
final String message = validator.interpolate(msg, locale);
55-
violations.add(new ConstraintViolation(currentPath() + propertyName, propertyName, message));
55+
final String field = field(propertyName);
56+
violations.add(new ConstraintViolation(currentPath() + field, field, message));
5657
if (failfast) {
5758
throwWithViolations();
5859
}
5960
}
6061

62+
private String field(String propertyName) {
63+
return propertyName == null ? "" : propertyName;
64+
}
65+
6166
@Override
6267
public void pushPath(String path) {
6368
pathStack.push(path);

0 commit comments

Comments
 (0)