8022836: JVM crashes in JVMTIENVBASE::GET_CURRENT_CONTENDED_MONITOR and GET_OWNED_MONITOR
Check that the _java_thread parameter is valid when it is possible that the JavaThread has exited after the initial checks were made in generated/jvmtifiles/jvmtiEnter.cpp: jvmti_GetCurrentContendedMonitor() Reviewed-by: dcubed, dsamersoff
This commit is contained in:
parent
876967ae1f
commit
c5c705217b
@ -406,8 +406,12 @@ public:
|
|||||||
VMOp_Type type() const { return VMOp_GetCurrentContendedMonitor; }
|
VMOp_Type type() const { return VMOp_GetCurrentContendedMonitor; }
|
||||||
jvmtiError result() { return _result; }
|
jvmtiError result() { return _result; }
|
||||||
void doit() {
|
void doit() {
|
||||||
|
_result = JVMTI_ERROR_THREAD_NOT_ALIVE;
|
||||||
|
if (Threads::includes(_java_thread) && !_java_thread->is_exiting() &&
|
||||||
|
_java_thread->threadObj() != NULL) {
|
||||||
_result = ((JvmtiEnvBase *)_env)->get_current_contended_monitor(_calling_thread,_java_thread,_owned_monitor_ptr);
|
_result = ((JvmtiEnvBase *)_env)->get_current_contended_monitor(_calling_thread,_java_thread,_owned_monitor_ptr);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// VM operation to get stack trace at safepoint.
|
// VM operation to get stack trace at safepoint.
|
||||||
|
Loading…
Reference in New Issue
Block a user