feat: improve error message for debugging
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
index ed0b0ea..56383f5 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
@@ -182,9 +182,12 @@
return this;
}
- private void putValue(final String name, final JsonValue value){
- if(name == null || value == null) {
- throw new NullPointerException("name or value/builder must not be null");
+ private void putValue(final String name, final JsonValue value) {
+ if(name == null) {
+ throw new NullPointerException("name must not be null");
+ }
+ if(value == null) {
+ throw new NullPointerException("value/builder must not be null for name: " + name);
}
rejectDuplicateKeysMode.put().put(attributeMap, name, value);
}
diff --git a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonObjectBuilderImplTest.java b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonObjectBuilderImplTest.java
index 99aa39f..c57f94f 100644
--- a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonObjectBuilderImplTest.java
+++ b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonObjectBuilderImplTest.java
@@ -133,6 +133,15 @@
builder.add("a", (Integer) null);
}
+ @Test
+ public void testNullCheckValueExceptionMessage() {
+ final JsonObjectBuilder builder = Json.createObjectBuilder();
+ try {
+ builder.add("name", (JsonValue) null);
+ } catch (final NullPointerException e) {
+ assertEquals("value/builder must not be null for name: name", e.getMessage());
+ }
+ }
@Test(expected = NullPointerException.class)
public void testNullCheckName() {
final JsonObjectBuilder builder = Json.createObjectBuilder();