Description
Starting on line 134 of ByteSearch.java, the for loop should be:
for (int k = pattern.length-1; k > 0; k--) {
skip[pattern[k] &(0xff)] = (short)k;
}
That is, it loops from the last character to the first character (exclusive), and sets the skip pattern to the distance between the character and the start of the array (which is just the index in the array).