You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by pr...@apache.org on 2015/09/14 23:06:35 UTC
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)
Repository: hive
Updated Branches:
refs/heads/master da0be3db7 -> 0bc96772e
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/master
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>();