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());
+ }
}