Skip to content

Commit

Permalink
Fix activeDialect for custom meta schema (#1084)
Browse files Browse the repository at this point in the history
  • Loading branch information
justin-tay committed Jul 5, 2024
1 parent 4a2258c commit 60d034e
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,7 @@ public UnevaluatedItemsValidator(SchemaLocation schemaLocation, JsonNodePath eva
JsonSchema parentSchema, ValidationContext validationContext) {
super(schemaLocation, evaluationPath, schemaNode, parentSchema, ValidatorTypeCode.UNEVALUATED_ITEMS,
validationContext);
isMinV202012 = MinV202012.getVersions().contains(SpecVersionDetector
.detectOptionalVersion(validationContext.getMetaSchema().getIri()).orElse(DEFAULT_VERSION));
isMinV202012 = MinV202012.getVersions().contains(validationContext.activeDialect().orElse(DEFAULT_VERSION));
if (schemaNode.isObject() || schemaNode.isBoolean()) {
this.schema = validationContext.newSchema(schemaLocation, evaluationPath, schemaNode, parentSchema);
} else {
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/com/networknt/schema/ValidationContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ public JsonMetaSchema getMetaSchema() {
}

public Optional<VersionFlag> activeDialect() {
String metaSchema = getMetaSchema().getIri();
return SpecVersionDetector.detectOptionalVersion(metaSchema);
return Optional.of(this.metaSchema.getSpecification());
}
}
5 changes: 1 addition & 4 deletions src/main/java/com/networknt/schema/utils/JsonNodeUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,7 @@ public static boolean equalsToSchemaType(JsonNode node, JsonType schemaType, Jso
}

private static long detectVersion(ValidationContext validationContext) {
String metaSchema = validationContext.getMetaSchema().getIri();
return SpecVersionDetector.detectOptionalVersion(metaSchema)
.orElse(VersionFlag.V4)
.getVersionFlagValue();
return validationContext.activeDialect().orElse(VersionFlag.V4).getVersionFlagValue();
}

/**
Expand Down
1 change: 1 addition & 0 deletions src/test/java/com/networknt/schema/VocabularyTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ void noValidation() {
messages = schema.validate(inputDataNoValidation, InputFormat.JSON);
assertEquals(1, messages.size());
assertEquals("minimum", messages.iterator().next().getType());
assertEquals(VersionFlag.V202012, schema.getValidationContext().activeDialect().get());
}

@Test
Expand Down

0 comments on commit 60d034e

Please sign in to comment.