-
Enhancement
-
Resolution: Fixed
-
P4
-
hs21
-
b16
-
generic
-
generic
Abstract_VM_Version is a shared-code class that defines a bunch of static methods.
VM_Version is an arch-specific subclass of Abstract_VM_Version that can add additional methods as well as _potentially_ override methods from Abstract_VM_Version.
The problem is that for overriding to work all "client" code should be calling VM_Version::XXX - but they don't! Not only do we have completely inconsistent use of VM_Version vs. Abstract_VM_Version across "clients", but even within the same piece of code! For example in arguments.cpp we first set the system property java.vm.info using VM_Version::vm_info_string() but then we replace it using Abstract_VM_Version::vm_info_string!
The fix could be as simple as changing all calls of Abstract_VM_Version to VM_Version but we need to verify which methods are being overridden in case there are situations where different clients are invoking differnet versions of the same method.
VM_Version is an arch-specific subclass of Abstract_VM_Version that can add additional methods as well as _potentially_ override methods from Abstract_VM_Version.
The problem is that for overriding to work all "client" code should be calling VM_Version::XXX - but they don't! Not only do we have completely inconsistent use of VM_Version vs. Abstract_VM_Version across "clients", but even within the same piece of code! For example in arguments.cpp we first set the system property java.vm.info using VM_Version::vm_info_string() but then we replace it using Abstract_VM_Version::vm_info_string!
The fix could be as simple as changing all calls of Abstract_VM_Version to VM_Version but we need to verify which methods are being overridden in case there are situations where different clients are invoking differnet versions of the same method.
- duplicates
-
JDK-8181187 Misuse of Abstract_VM_Version
-
- Closed
-
- relates to
-
JDK-8212617 ARM32 build failures after JDK-7041262 (VM_Version should be called instead of Abstract_VM_Version so that overriding works)
-
- Resolved
-
-
JDK-8233943 get_jvmti_interface directly references Abstract_VM_Version
-
- Closed
-
-
JDK-8202579 Revisit VM_Version and VM_Version_ext for overlap and consolidation
-
- Resolved
-