Skip to content

urn:jsonschema:java:time:Instant is not supported as reference #100

@matejsp

Description

@matejsp

There is error when validating using schema generated by jackson 2.9.6:

CODE:

    public void generateSchema() throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        JsonSchemaGenerator schemaGen = new JsonSchemaGenerator(mapper);
        JsonSchema schema = schemaGen.generateSchema(SampleEvent.class);
        String stringSchema = mapper.writeValueAsString(schema);
        JsonParser parser = mapper.getFactory().createParser(stringSchema);
        JsonNode schemaNode = parser.readValueAsTree();
        JsonSchemaFactory factory = JsonSchemaFactory.getInstance();
        com.networknt.schema.JsonSchema schemaOut = factory.getSchema(schemaNode);
    }

POJO:

    @lombok.Data
    public static class SampleEvent {

        private Instant dateFrom;

        private Instant dateTo;

    }

SCHEMA:

{
	"type": "object",
	"id": "urn:jsonschema:net:sample:SimpleEvent",
	"properties": {
		"dateFrom": {
			"type": "object",
			"id": "urn:jsonschema:java:time:Instant",
			"properties": {
				"nano": {
					"type": "integer"
				},
				"epochSecond": {
					"type": "integer"
				}
			}
		},
		"dateTo": {
			"type": "object",
			"$ref": "urn:jsonschema:java:time:Instant"
		}
	}
}

ERROR:

	at java.lang.String.substring(String.java:1967)
	at com.networknt.schema.RefValidator.obtainAbsolutePath(RefValidator.java:94)
	at com.networknt.schema.RefValidator.getRefSchema(RefValidator.java:60)
	at com.networknt.schema.RefValidator.<init>(RefValidator.java:45)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.networknt.schema.ValidatorTypeCode.newValidator(ValidatorTypeCode.java:121)
	at com.networknt.schema.JsonMetaSchema.newValidator(JsonMetaSchema.java:240)
	... 41 more

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions