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 <[email protected]>
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 <[email protected]>
Co-authored-by: Richard Zowalla <[email protected]>
---
.../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");
+ }
+}