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

rzo1 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git


The following commit(s) were added to refs/heads/master by this push:
     new cf2f8734b [STORM-3132] Avoid NPE in the Values Constructor (#2744)
cf2f8734b is described below

commit cf2f8734b32380b4e75c9936971864e87003d25b
Author: Kishor Patil <kpa...@yahoo-inc.com>
AuthorDate: Mon Dec 4 06:15:13 2023 -0500

    [STORM-3132] Avoid NPE in the Values Constructor (#2744)
    
    * Avoid NPE in the Values Constructor
    
    * Fix Values Constructor as per review comments
    
    * remove unwanted condition
    
    * Addressing code review comments
    
    * Fix checkstyle
    
    * Fix JUnit 4 -> JUnit 5
    
    ---------
    
    Co-authored-by: Kishor Patil <kpa...@oath.com>
    Co-authored-by: Richard Zowalla <richard.zowa...@hs-heilbronn.de>
---
 .../src/jvm/org/apache/storm/tuple/Values.java     | 10 ++--
 .../jvm/org/apache/storm/tuple/ValuesTest.java     | 54 ++++++++++++++++++++++
 2 files changed, 61 insertions(+), 3 deletions(-)

diff --git a/storm-client/src/jvm/org/apache/storm/tuple/Values.java 
b/storm-client/src/jvm/org/apache/storm/tuple/Values.java
index d1b7fe7ed..a663866ff 100644
--- a/storm-client/src/jvm/org/apache/storm/tuple/Values.java
+++ b/storm-client/src/jvm/org/apache/storm/tuple/Values.java
@@ -23,9 +23,13 @@ public class Values extends ArrayList<Object> {
     }
 
     public Values(Object... vals) {
-        super(vals.length);
-        for (Object o : vals) {
-            add(o);
+        super(vals != null ? vals.length : 1);
+        if (vals != null) {
+            for (Object o : vals) {
+                add(o);
+            }
+        } else {
+            add(null);
         }
     }
 }
diff --git a/storm-client/test/jvm/org/apache/storm/tuple/ValuesTest.java 
b/storm-client/test/jvm/org/apache/storm/tuple/ValuesTest.java
new file mode 100644
index 000000000..7e7a28219
--- /dev/null
+++ b/storm-client/test/jvm/org/apache/storm/tuple/ValuesTest.java
@@ -0,0 +1,54 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.storm.tuple;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class ValuesTest {
+
+    @Test
+    public void testNoArgsToValues() {
+        Values vals = new Values();
+        Assertions.assertEquals(0, vals.size(), "Failed to add null to 
Values");
+    }
+
+    @Test
+    public void testNullArgsToValues() {
+        Values vals = new Values(null);
+        Assertions.assertEquals(1, vals.size(), "Failed to add null to 
Values");
+        Assertions.assertNull(vals.get(0));
+    }
+
+    @Test
+    public void testNonNullArgsToValues() {
+        Values vals = new Values("A", "B");
+        Assertions.assertEquals(2, vals.size(), "Failed to Add values to 
Values");
+        Assertions.assertEquals(vals.get(0), "A");
+        Assertions.assertEquals(vals.get(1), "B");
+    }
+
+    @Test
+    public void testNullAsArgsToValues() {
+        Values vals = new Values(null, "A");
+        Assertions.assertEquals(2, vals.size(), "Failed to Add values to 
Values");
+        Assertions.assertNull(vals.get(0));
+        Assertions.assertEquals(vals.get(1), "A");
+    }
+}

Reply via email to