--- old/src/java.desktop/share/native/libfontmanager/HBShaper.c 2016-07-27 14:55:41.117664217 -0700 +++ new/src/java.desktop/share/native/libfontmanager/HBShaper.c 2016-07-27 14:55:40.977664213 -0700 @@ -278,6 +278,12 @@ hb_buffer_set_direction(buffer, direction); chars = (*env)->GetCharArrayElements(env, text, NULL); + if ((*env)->ExceptionCheck(env)) { + hb_buffer_destroy(buffer); + hb_font_destroy(hbfont); + free((void*)jdkFontInfo); + return JNI_FALSE; + } len = (*env)->GetArrayLength(env, text); hb_buffer_add_utf16(buffer, chars, len, offset, limit-offset); @@ -309,6 +315,7 @@ hb_font_destroy(hbfont); free((void*)jdkFontInfo); if (features != NULL) free(features); + (*env)->ReleaseCharArrayElements(env, text, chars, JNI_ABORT); return JNI_TRUE; }