-
Bug
-
Resolution: Fixed
-
P4
-
hs25
-
b58
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8028247 | 8 | Coleen Phillimore | P4 | Resolved | Fixed | b116 |
JDK-8028960 | port-stage-ppc-aix | Coleen Phillimore | P4 | Resolved | Fixed | master |
The methods JvmtiEnv::SetBreakpoint and JvmtiEnv::ClearBreakpoint take a Method* (pointer to Method) as parameter. Both methods are currently using an oop to the class loader to keep the Method's class alive. However, for anonymous classes, keeping an oop to the class loader is not sufficient to keep the class alive. For anonymous classes, one must keep an oop the Java mirror of the class.
Coleen suggested using the following method:
// oop that keeps the metadata for this class from being unloaded
// in places where the metadata is stored in other places, like nmethods
oop klass_holder() const {
return is_anonymous() ? java_mirror() : class_loader();
}
Coleen suggested using the following method:
// oop that keeps the metadata for this class from being unloaded
// in places where the metadata is stored in other places, like nmethods
oop klass_holder() const {
return is_anonymous() ? java_mirror() : class_loader();
}
- backported by
-
JDK-8028247 JvmtiEnv::SetBreakpoint and JvmtiEnv::ClearBreakpoint might not work with anonymous classes
- Resolved
-
JDK-8028960 JvmtiEnv::SetBreakpoint and JvmtiEnv::ClearBreakpoint might not work with anonymous classes
- Resolved