diff --git a/src/main/java/com/networknt/schema/OneOfValidator.java b/src/main/java/com/networknt/schema/OneOfValidator.java index 81327e04a..0ba783229 100644 --- a/src/main/java/com/networknt/schema/OneOfValidator.java +++ b/src/main/java/com/networknt/schema/OneOfValidator.java @@ -162,31 +162,12 @@ public Set validate(JsonNode node, JsonNode rootNode, String continue; numberOfValidSchema++; - errors = new LinkedHashSet(); - } else { - errors.addAll(schemaErrors); } } - // no valid schema has been found after validating all schema validators - if (numberOfValidSchema == 0) { - for (Iterator it = errors.iterator(); it.hasNext(); ) { - ValidationMessage msg = it.next(); - if (ValidatorTypeCode.ADDITIONAL_PROPERTIES.getValue().equals(msg.getType())) { - it.remove(); - } - } - if (errors.isEmpty()) { - // ensure there is always an error reported if number of valid schemas is 0 - errors.add(buildValidationMessage(at, "")); - } - } else { - errors.clear(); - } - - // validated upfront - if (numberOfValidSchema > 1) { + // ensure there is always an "OneOf" error reported if number of valid schemas is not equal to 1. + if (numberOfValidSchema != 1) { errors = Collections.singleton(buildValidationMessage(at, "")); } diff --git a/src/test/resources/draft6/oneOf.json b/src/test/resources/draft6/oneOf.json index 65ab47d0a..c637edda0 100644 --- a/src/test/resources/draft6/oneOf.json +++ b/src/test/resources/draft6/oneOf.json @@ -189,6 +189,11 @@ "bar": "quux" }, "valid": false + }, + { + "description": "neither oneOf given (complex)", + "data": {}, + "valid": false } ] },