Perhaps do a String.charAt in the example where you get debug info on the SIOOBE, then watch all your performance supposedly disappear into the charAt call. This is why I've never called the safepoint bias problem in AGCT fixed. JVMTI CMLR could provide similar solutions.