-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid NPE when setting additionalProperties path #1515
Avoid NPE when setting additionalProperties path #1515
Conversation
any update on this fix? |
Thanks for pinging @andreaTP. I saw the CI job failed and didn't get around to investigating that. I've kicked this off again and will merge if this passes. |
I think the issue with CI may be this: https://github.blog/changelog/2022-08-09-github-actions-the-ubuntu-18-04-actions-runner-image-is-being-deprecated-and-will-be-removed-by-12-1-22/. Would you like me to bump the Ubuntu version to 20.04 or 22.04 as part of this PR? |
Would it be possible to provide also test case(s) as outlined in https://github.com/joelittlejohn/jsonschema2pojo/blob/master/CONTRIBUTING.md |
Signed-off-by: Michael Edgar <[email protected]>
84b51d4
to
7f9af17
Compare
Unit test added. Between the new test and the existing integration tests, both null/non-null schema Ids are tested. |
a6b22ad
to
3b9c181
Compare
@MikeEdgar is it not possible to recreate this case via the integration tests? |
@joelittlejohn , the integration tests all seem to be using a particular approach where the schemas are loaded from JSON (which always sets the id) using the Maven plugin Mojo. If that's the preferred location for new tests, it will likely need to be an alternate process. |
@joelittlejohn , can this PR move forward as-is or are additional testing changes necessary? IMO the scope of the change itself is quite minor from a testing risk perspective and a unit test has been added of course. |
Ping @joelittlejohn and @unkish , anything that should be done here to get the fix merged and released? Thanks in advance 🙏 |
jsonschema2pojo-core/src/test/java/org/jsonschema2pojo/rules/AdditionalPropertiesRuleTest.java
Outdated
Show resolved
Hide resolved
Release schedule & content is up to maintainer to decide (might be dependent on available free time/resources/...) |
Signed-off-by: Michael Edgar <[email protected]>
3b9c181
to
7bd063c
Compare
@joelittlejohn , @unkish - please have another look and let me know if any other changes are necessary. |
From the change perspective itself: it looks perfectly fine and valid. There is also similar "guard" in jsonschema2pojo/jsonschema2pojo-core/src/main/java/org/jsonschema2pojo/rules/ArrayRule.java Line 84 in 98c85ce
Latter was added with commit 8e97ddb
public class SchemaMapperTest {
...
@Test
public void generateCreatesTypeFromSchemaWithAdditionalProperties() throws Exception {
String schema = "{\"type\":\"object\",\"additionalProperties\":{\"type\":\"integer\",\"maximum\":9}}";
JType result = new SchemaMapper().generate(new JCodeModel(), "ExampleClass", "", schema);
JType returnType = ((JDefinedClass) result).getMethod("getAdditionalProperties", new JType[0]).type();
assertEquals("Map<String,Integer>", returnType.name());
}
} |
A schema's
id
is not guaranteed to be non-null. E.g.jsonschema2pojo/jsonschema2pojo-core/src/main/java/org/jsonschema2pojo/SchemaMapper.java
Lines 89 to 91 in 80d827d