HIVE-22480: IndexOutOfBounds exception while reading ORC files written with empty positions list in first row index entry (Jesus Camacho Rodriguez, reviewed by Prasanth Jayachandran)
diff --git a/orc/src/java/org/apache/hive/orc/impl/RecordReaderUtils.java b/orc/src/java/org/apache/hive/orc/impl/RecordReaderUtils.java
index 16af69d..4f9a0fb 100644
--- a/orc/src/java/org/apache/hive/orc/impl/RecordReaderUtils.java
+++ b/orc/src/java/org/apache/hive/orc/impl/RecordReaderUtils.java
@@ -248,7 +248,7 @@ public static void addRgFilteredStreamToRanges(OrcProto.Stream stream,
if (!includedRowGroups[group]) continue;
int posn = getIndexPosition(
encoding.getKind(), type.getKind(), stream.getKind(), isCompressed, hasNull);
- long start = index.getEntry(group).getPositions(posn);
+ long start = group == 0 ? 0 : index.getEntry(group).getPositions(posn);
final long nextGroupOffset;
boolean isLast = group == (includedRowGroups.length - 1);
nextGroupOffset = isLast ? length : index.getEntry(group + 1).getPositions(posn);