You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2015/09/16 21:18:43 UTC

[25/50] [abbrv] hive git commit: HIVE-5623: ORC accessing array column that's empty will fail with java out of bound exception (Prasanth Jayachandran reviewed by Ashutosh Chauhan)

HIVE-5623: ORC accessing array column that's empty will fail with java out of bound exception (Prasanth Jayachandran reviewed by Ashutosh Chauhan)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/0bc96772
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/0bc96772
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/0bc96772

Branch: refs/heads/spark
Commit: 0bc96772e440653815792d3e37db3e9063e6c2e1
Parents: da0be3d
Author: Prasanth Jayachandran <j....@gmail.com>
Authored: Mon Sep 14 16:06:18 2015 -0500
Committer: Prasanth Jayachandran <j....@gmail.com>
Committed: Mon Sep 14 16:06:18 2015 -0500

----------------------------------------------------------------------
 ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java     | 2 +-
 ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcStruct.java | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/0bc96772/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java
index b1a32bc..7a17b92 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java
@@ -435,7 +435,7 @@ final public class OrcStruct implements Writable {
 
     @Override
     public Object getListElement(Object list, int i) {
-      if (list == null) {
+      if (list == null || i < 0 || i >= getListLength(list)) {
         return null;
       }
       return ((List) list).get(i);

http://git-wip-us.apache.org/repos/asf/hive/blob/0bc96772/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcStruct.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcStruct.java b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcStruct.java
index 8fc0693..2e431c8 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcStruct.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcStruct.java
@@ -94,6 +94,8 @@ public class TestOrcStruct {
         inspector.getAllStructFieldRefs().get(12).getFieldObjectInspector();
     assertEquals(ObjectInspector.Category.LIST, listOI.getCategory());
     assertEquals(10, listOI.getListElement(list, 10));
+    assertEquals(null, listOI.getListElement(list, -1));
+    assertEquals(null, listOI.getListElement(list, 13));
     assertEquals(13, listOI.getListLength(list));
 
     Map<Integer, Integer> map = new HashMap<Integer,Integer>();