Details
-
Bug
-
Resolution: Fixed
-
P4
-
18
-
b06
Description
GetPrimitiveArrayCritical() can only be used with primitive array types, but logic in JNI_GetPrimitiveArrayCritical() makes it looks like possible for object array.
BasicType type;
if (a->is_objArray()) {
type = T_OBJECT;
} else {
type = TypeArrayKlass::cast(a->klass())->element_type();
}
and I can pass in object array to GetPrimitiveArrayCritical() without any complains. See attached test case for details.
BasicType type;
if (a->is_objArray()) {
type = T_OBJECT;
} else {
type = TypeArrayKlass::cast(a->klass())->element_type();
}
and I can pass in object array to GetPrimitiveArrayCritical() without any complains. See attached test case for details.
Attachments
Issue Links
- csr for
-
JDK-8269790 JNI_GetPrimitiveArrayCritical() should not accept object array
- Closed
- relates to
-
JDK-8269661 JNI_GetStringCritical does not lock char array
- Closed
-
JDK-8269650 Optimize gc-locker in [Get|Release]StringCritical for latin string
- Resolved
-
JDK-8269686 Shenandoah: Shenandoah needs to pin all object elements in an array
- Resolved
-
JDK-8269923 runtime/jni/checked/TestPrimitiveArrayCriticalWithBadParam.java failed with "FATAL ERROR in native method: Primitive type array expected but not received for JNI array operation"
- Resolved
(3 links to)