See FasterXML/jackson-dataformats-text#411 and FasterXML/jackson-dataformats-text#412
The IndexOutOfBoundsException is caused by a condition where the buffer is still large enough that it can hold one char, but that char is a high surrogate, so zzRefill returns false (no EOF) but does not increase zzEndRead (the high surrogate does not have a corresponding low surrogate yet).