Description
Selecting more than two individual array elements in a query results in an ArrayIndexOutOfBoundsException thrown from ScanRegionObserver.
An example of a query that will trigger this situation is as follows:
select arr[1], arr[2], arr[3] from table_with_array
The cause appears to be the replaceArrayIndexElement method in ScanRegionObserver. It removes a Cell for each array reference in the query, with the intention of replacing them with a reduced Cell that only contains the requested values of the array. The current impl attempts to remove the same KeyValue multiple times, and in the end attempts to remove more KeyValues than there are in the original list.