The problem is the call to `columns.getSelectorNames()` _within_ the processing of each tuple. The location index values are the same for all tuples, so you don't need to get them while processing each tuple but rather can be determined before processing even the first tuple (e.g., via an `int[]` maybe).