johnzon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simone Tripodi (JIRA)" <>
Subject [jira] [Created] (JOHNZON-191) [Schema] "patternProperties" does not correctly handle related property type
Date Fri, 05 Oct 2018 20:03:00 GMT
Simone Tripodi created JOHNZON-191:

             Summary: [Schema] "patternProperties" does not correctly handle related property
                 Key: JOHNZON-191
             Project: Johnzon
          Issue Type: Bug
    Affects Versions: 1.1.10
            Reporter: Simone Tripodi
             Fix For: 1.1.11

In Apache Sling we have been developing a draft-07 compliant schema to define _Sling Feature
files_, which are in JSON format, and of course Johnzon is the de-facto standard choice to
work with JSON structures.

If you want to have a look at the initial draft, have a look at

So, in our _Feature_ we have so called _extensions_ where users can define a custom data set,
_extensions_ keys are defined by {{patternProperties}} which related type, I noticed, are
not correctly handled by the {{JsonSchemaValidator}}: the expected behaviour is that for an
input like the one below:


an error is detected since type is invalid, _string_ or _array_ is expected but  but got _object_,
tested on, but {{JsonSchemaValidator}} passes all verifications.

I noticed that this behaviour is even present in Johnzon tests , i.e.[|]
where _number_ type is expected for keys identified by _[0-9]+_, but it succeeds for _string_
type only.

I think it is a bug, unless I misconfigured something, follows below a snippet of code where
the validator is created:

    private final JsonSchemaValidator validator;

    private FeatureSchemaValidatorProvider() {
        JsonReader reader = null;
        JsonSchemaValidatorFactory factory = null;
        try (InputStream schemaInput = FeatureJSONReader.class.getResourceAsStream("/META-INF/feature/Feature-1.0.0.schema.json"))
            reader = Json.createReader(schemaInput);
            JsonObject schema = reader.readObject();
            factory = new JsonSchemaValidatorFactory();
            validator = factory.newInstance(schema);
        } catch (IOException ioe) {
            // should not happen, /META-INF/feature/Feature-1.0.0.schema.json is in the classpath
            throw new UncheckedIOException(ioe);
        } finally {
            if (reader != null) {
            if (factory != null) {

Could you kindly help us? Many thanks in advance!

This message was sent by Atlassian JIRA

View raw message