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

dongjoon pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/orc.git


The following commit(s) were added to refs/heads/main by this push:
     new 6642218  ORC-845: Fix NPE in DynamicIntArray toString (#749)
6642218 is described below

commit 6642218891abee658fcc9ff78c40d7b1f82df596
Author: belugabehr <[email protected]>
AuthorDate: Tue Jul 13 02:27:07 2021 -0400

    ORC-845: Fix NPE in DynamicIntArray toString (#749)
    
    ### What changes were proposed in this pull request?
    Fix NPE in `DynamicIntArray` toString method.
    
    ### Why are the changes needed?
    Restore helpful when debugging.
    
    ### How was this patch tested?
    No changes to functionality. Added unit test covering empty list.
---
 .../src/java/org/apache/orc/impl/DynamicIntArray.java | 19 ++++++++++---------
 .../test/org/apache/orc/impl/TestDynamicArray.java    |  6 ++++++
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/java/core/src/java/org/apache/orc/impl/DynamicIntArray.java 
b/java/core/src/java/org/apache/orc/impl/DynamicIntArray.java
index 437f9c9..e730229 100644
--- a/java/core/src/java/org/apache/orc/impl/DynamicIntArray.java
+++ b/java/core/src/java/org/apache/orc/impl/DynamicIntArray.java
@@ -121,19 +121,20 @@ public final class DynamicIntArray {
 
   @Override
   public String toString() {
-    int i;
-    StringBuilder sb = new StringBuilder(length * 4);
+    int l = length - 1;
+    if (l == -1) {
+      return "{}";
+    }
 
+    StringBuilder sb = new StringBuilder(length * 4);
     sb.append('{');
-    int l = length - 1;
-    for (i=0; i<l; i++) {
+    for (int i = 0; i <= l; i++) {
       sb.append(get(i));
-      sb.append(',');
+      if (i != l) {
+        sb.append(",");
+      }
     }
-    sb.append(get(i));
-    sb.append('}');
-
-    return sb.toString();
+    return sb.append('}').toString();
   }
 
   public int getSizeInBytes() {
diff --git a/java/core/src/test/org/apache/orc/impl/TestDynamicArray.java 
b/java/core/src/test/org/apache/orc/impl/TestDynamicArray.java
index af583f7..fac1068 100644
--- a/java/core/src/test/org/apache/orc/impl/TestDynamicArray.java
+++ b/java/core/src/test/org/apache/orc/impl/TestDynamicArray.java
@@ -87,4 +87,10 @@ public class TestDynamicArray {
     }
     assertEquals("{6,15,68,3,3}", dia.toString());
   }
+
+  @Test
+  public void testEmptyIntArrayToString() {
+    DynamicIntArray dia = new DynamicIntArray();
+    assertEquals("{}", dia.toString());
+  }
 }

Reply via email to