+1  A: 

I found out what the problem was. In the subList method, I used a binary search method to identify the index location of the first found match. However, since binary search returns only the first match it comes across, I had a loop to walk backwards thru the array to find the real first match.

However, in this case, the first hit returned from binary search was at the 0 index, so when I walked backwards, an ArrayIndexOutOfBoundsException was thrown, thus short-circuiting the entire thing. Adding a second test solved the problem.

Jason