This is an automated email from the ASF dual-hosted git repository.

jungm pushed a commit to branch johnzon-1.2.x
in repository https://gitbox.apache.org/repos/asf/johnzon.git


The following commit(s) were added to refs/heads/johnzon-1.2.x by this push:
     new 52da80f8 [JOHNZON-407] fix NPE in JsonArrayBuilderImpl
52da80f8 is described below

commit 52da80f8326831b55f634bf14e3568dff51cc126
Author: Markus Jung <[email protected]>
AuthorDate: Sun Aug 4 11:21:10 2024 +0200

    [JOHNZON-407] fix NPE in JsonArrayBuilderImpl
    
    (cherry picked from commit 06caf92fc57e1c4a5f974079bb399e1839e70b11)
---
 .../java/org/apache/johnzon/core/JsonArrayBuilderImpl.java  |  2 +-
 .../org/apache/johnzon/core/JsonArrayBuilderImplTest.java   | 13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
index 87c9a161..77698ba6 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
@@ -57,13 +57,13 @@ class JsonArrayBuilderImpl implements JsonArrayBuilder, 
Serializable {
                                 final RejectDuplicateKeysMode 
rejectDuplicateKeysMode, final JsonProviderImpl jsonProvider) {
         this.bufferProvider = provider;
         this.rejectDuplicateKeysMode = rejectDuplicateKeysMode;
+        this.jsonProvider = jsonProvider;
         this.tmpList = new ArrayList<>();
         if (!initialData.isEmpty()) {
             for (Object initialValue : initialData) {
                 add(initialValue);
             }
         }
-        this.jsonProvider = jsonProvider;
     }
 
     @Override
diff --git 
a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonArrayBuilderImplTest.java
 
b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonArrayBuilderImplTest.java
index 85d14eb6..7e54da04 100644
--- 
a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonArrayBuilderImplTest.java
+++ 
b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonArrayBuilderImplTest.java
@@ -202,4 +202,17 @@ public class JsonArrayBuilderImplTest {
         JsonArray jsonArray2 = otherBuilder.build();
         Assert.assertEquals("[\"a\",\"b\",\"c\",\"d\"]", 
jsonArray2.toString());
     }
+
+    /**
+     * Testcase for <a 
href="https://issues.apache.org/jira/browse/JOHNZON-407";>JOHNZON-407</a>
+     */
+    @Test
+    public void issue407() {
+        Collection<Object> initialData = new ArrayList<>();
+        initialData.add(BigDecimal.ONE);
+        initialData.add(BigInteger.ONE);
+
+        // This must not throw an exception
+        Json.createArrayBuilder(initialData).build();
+    }
 }

Reply via email to