[ https://issues.apache.org/jira/browse/HIVE-5623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Prasanth Jayachandran reassigned HIVE-5623: ------------------------------------------- Assignee: Prasanth Jayachandran > ORC accessing array column that's empty will fail with java out of bound > exception > ---------------------------------------------------------------------------------- > > Key: HIVE-5623 > URL: https://issues.apache.org/jira/browse/HIVE-5623 > Project: Hive > Issue Type: Bug > Components: File Formats > Affects Versions: 0.11.0 > Reporter: Eric Chu > Assignee: Prasanth Jayachandran > Priority: Critical > Labels: orcfile > Attachments: HIVE-5623.patch > > > In our ORC tests we saw that queries that work on RCFile failed on the > corresponding ORC version with Java IndexOutOfBoundsException in > OrcStruct.java. The queries failed b/c the table has an array type column and > there are rows with an empty array. We noticed that the getList(Object list, > int i) method in OrcStruct.java simply returns the i-th element from list > without checking if list is not null or if i is within valid range. After > fixing that the queries run fine. The fix is really simple, but maybe there > are other similar cases that need to be handled. > The fix is to check if listObj is null and if i falls within range: > public Object getListElement(Object listObj, int i) { > if (listObj == null) { > return null; > } > List list = ((List) listObj); > if (i < 0 || i >= list.size()) { > return null; > } > return list.get(i); > } -- This message was sent by Atlassian JIRA (v6.3.4#6332)