JDK-8172970 : TESTBUG: need test coverage for the JVMTI functions allowed in the start phase
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: jvmti
  • Affected Version: 9
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2017-01-18
  • Updated: 2019-09-09
  • Resolved: 2017-05-03
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10
10 b21Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
It was discovered in the review of the 8172261 that there are no test coverage for the JVM TI functions allowed in the start phase. It is especially important to have such coverage for the early start phase when the can_generate_early_vmstart capability was possessed. 
Comments
The following JVMTI spec fragment lists the functions that operate in the start phase. The following functions operate in the start or live phases: GetCurrentThread SetThreadLocalStorage GetThreadLocalStorage GetTag SetTag GetClassSignature GetClassStatus GetSourceFileName GetClassModifiers GetClassMethods GetClassFields GetImplementedInterfaces GetClassVersionNumbers GetConstantPool IsInterface IsArrayClass IsModifiableClass GetClassLoader GetSourceDebugExtension GetObjectSize GetObjectHashCode GetFieldName GetFieldDeclaringClass GetFieldModifiers IsFieldSynthetic GetMethodName GetMethodDeclaringClass GetMethodModifiers GetMaxLocals GetArgumentsSize GetLineNumberTable GetMethodLocation GetBytecodes IsMethodNative IsMethodSynthetic IsMethodObsolete SetJNIFunctionTable GetJNIFunctionTable GetCurrentThreadCpuTimerInfo GetCurrentThreadCpuTime It would be enough to cover most of the functions above, not necessarily all of them. I think, it is Ok to not cover the following functions from the above list: SetJNIFunctionTable GetJNIFunctionTable GetCurrentThreadCpuTimerInfo GetCurrentThreadCpuTime GetSourceDebugExtension GetImplementedInterfaces GetClassVersionNumbers GetConstantPool GetClassLoader GetTag SetTag GetObjectSize GetObjectHashCode GetLineNumberTable GetMethodLocation GetBytecodes The functions that operate in any phase do not have to be covered by this enhancement.
03-05-2017