org.apache.jackrabbit.core.query.lucene.DefaultHighlighter: line 204-207
It seems, that int index = 0; counter is not being reset in new iteration over the next array of termoffsets, which leads to the following consequences:
All the occurrences of the first query term (in case there are several of them), except for the first on are being compared to offset of a last termoffset of the following terms.
So some of matches are being skipped.
Suggested fix: reset int index to zero inside the while loop on line 205