mkarg commented on issue #46: [JOHNZON-278] Return constant instead of new instance of empty block / empty array URL: https://github.com/apache/johnzon/pull/46#issuecomment-533870565 > @mkarg can you detail the geronimo issue? **`JsonObjectImplTest.testGetStringMissingKeyShouldThrowNullPointerException Expected exception: java.lang.NullPointerException`:** * The [JSON-P API](https://github.com/eclipse-ee4j/jsonp/blob/5735bb62715578633d5721bf583b837506bbec73/api/src/main/java/javax/json/JsonObject.java#L164-L165) requires `JsonObject.getString("missing")` to throw `NullPointerException` for non-existent key `"missing"`. * [Johnzon Core](https://github.com/apache/johnzon/blob/589fb9e2b8732a0033f99d162b1209082d0de019/johnzon-core/src/test/java/org/apache/johnzon/core/JsonObjectImplTest.java#L138-L141)'s `JsonObjectImplTest` *correctly* tests this behavior. * [Jakarta](https://github.com/eclipse-ee4j/jsonp/blob/5735bb62715578633d5721bf583b837506bbec73/api/src/main/java/javax/json/EmptyObject.java#L58-L61)'s original JSON-P API (`EmptyObject`) *correctly* throws `NullPointerException` . * [Geronimo](https://github.com/apache/geronimo-specs/blob/0f0956795ad0839ec698e11fd3a7049f0114623c/geronimo-json_1.1_spec/src/main/java/javax/json/EmptyJsonObject.java#L51-L52)'s variant of the JSON-P API (`EmptyJsonObject`) **incorrectly** returns `null` instead of throwing an exception. **`JsonObjectImplTest.testGetStringWithDefaultShouldReturnDefault:146 expected:<default> but was:<null>`:** * The [JSON-P API](https://github.com/eclipse-ee4j/jsonp/blob/5735bb62715578633d5721bf583b837506bbec73/api/src/main/java/javax/json/JsonObject.java#L172-L175) requires `JsonObject.getString("missing", "default")` to return `"default"` for non-existent key `"missing"`. * [Johnzon Core](https://github.com/apache/johnzon/blob/589fb9e2b8732a0033f99d162b1209082d0de019/johnzon-core/src/test/java/org/apache/johnzon/core/JsonObjectImplTest.java#L143-L147)'s `JsonObjectImplTest` *correctly* tests this behavior. * [Jakarta](https://github.com/eclipse-ee4j/jsonp/blob/5735bb62715578633d5721bf583b837506bbec73/api/src/main/java/javax/json/EmptyObject.java#L63-L66)'s original JSON-P API (`EmptyObject`) *correctly* returns `"default"`. * [Geronimo](https://github.com/apache/geronimo-specs/blob/0f0956795ad0839ec698e11fd3a7049f0114623c/geronimo-json_1.1_spec/src/main/java/javax/json/EmptyJsonObject.java#L55-L58)'s variant of the JSON-P API (`EmptyJsonObject`) **incorrectly** returns `null` instead of `"default"`. **`JsonObjectImplTest.testIsNullMissingKeyShouldThrowNullPointerException Expected exception: java.lang.NullPointerException`:** * The [JSON-P API](https://github.com/eclipse-ee4j/jsonp/blob/5735bb62715578633d5721bf583b837506bbec73/api/src/main/java/javax/json/JsonObject.java#L244-L245) requires `JsonObject.isNull("missing")` to throw `NullPointerException` for non-existent key `"missing"`. * [Johnzon Core](https://github.com/apache/johnzon/blob/589fb9e2b8732a0033f99d162b1209082d0de019/johnzon-core/src/test/java/org/apache/johnzon/core/JsonObjectImplTest.java#L150-L153)'s `JsonObjectImplTest` *correctly* tests this behavior. * [Jakarta](https://github.com/eclipse-ee4j/jsonp/blob/5735bb62715578633d5721bf583b837506bbec73/api/src/main/java/javax/json/EmptyObject.java#L88-L91)'s original JSON-P API (`EmptyObject`) *correctly* throws `NullPointerException`. * [Geronimo](https://github.com/apache/geronimo-specs/blob/0f0956795ad0839ec698e11fd3a7049f0114623c/geronimo-json_1.1_spec/src/main/java/javax/json/EmptyJsonObject.java#L80-L83)'s variant of the JSON-P API (`EmptyJsonObject`) **incorrectly** returns `true` instead of throwing an exception. As a result the Johnzon tests fail when runnign against Geronimo's variant of JSON-P API while it passes when running against Jakarta's original JSON-P API. A short term solution could be to *temporarily* switch from Geronimo to Jakarta until Geronimo published a fix for their variant of the JSON-P API.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services