JDK-8057777 : Cleanup of old and unused VM interfaces
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 9
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2014-09-08
  • Updated: 2018-05-22
  • Resolved: 2014-10-09
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 9
9 b37Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8175037 :  
Description
The HotSpot VM still supports a number of VM Interfaces that are not used anymore by the JDK.
```
JVM_OnExit
JVM_Exit
JVM_TraceInstructions
JVM_TraceMethodCalls
JVM_IsNaN
JVM_InitializeCompiler
JVM_IsSilentCompiler
JVM_CompileClass
JVM_CompileClasses
JVM_CompilerCommand
JVM_EnableCompiler
JVM_DisableCompiler
JVM_AllocateNewObject
JVM_AllocateNewArray
JVM_LoadClass0
JVM_ResolveClass
JVM_GetFieldAnnotations
JVM_GetMethodAnnotations
JVM_GetMethodDefaultAnnotationValue
JVM_GetMethodParameterAnnotations
JVM_CX8Field
JVM_GetLastErrorString
JVM_Open
JVM_Close
JVM_Read
JVM_Write
JVM_Available
JVM_Lseek
JVM_SetLength
JVM_Sync
JVM_InitializeSocketLibrary
JVM_Socket
JVM_SocketClose
JVM_SocketShutdown
JVM_Recv
JVM_Send
JVM_Timeout
JVM_Listen
JVM_Connect
JVM_Bind
JVM_Accept
JVM_RecvFrom
JVM_GetSockName
JVM_GetSockOpt
JVM_SetSockOpt
JVM_GetHostName
JVM_GetThreadStateValues
JVM_GetThreadStateNames
```
It might be time to remove them from our code base

Comments
Why is the removal of a set of JDK internal API's being release noted?
16-02-2017

Suggested release notes: In this release, a number of VM interfaces have been removed, either because the JDK was not using them anymore or because the service they provided was also available in JDK native libraries. The removed VM interfaces are listed below: void JVM_OnExit(void (*func)(void) void JVM_Exit(jint code); void JVM_TraceInstructions(jboolean on); void JVM_TraceMethodCalls(jboolean on); jboolean JVM_IsNaN(jdouble d); void JVM_InitializeCompiler(JNIEnv *env, jclass compCls); jboolean JVM_IsSilentCompiler(JNIEnv *env, jclass compCls); jboolean JVM_CompileClass(JNIEnv *env, jclass compCls, jclass cls); jboolean JVM_CompileClasses(JNIEnv *env, jclass cls, jstring jname); jobject JVM_CompilerCommand(JNIEnv *env, jclass compCls, jobject arg); void JVM_EnableCompiler(JNIEnv *env, jclass compCls); void JVM_DisableCompiler(JNIEnv *env, jclass compCls); jobject JVM_AllocateNewObject(JNIEnv *env, jobject obj, jclass currClass, jclass initClass); jobject JVM_AllocateNewArray(JNIEnv *env, jobject obj, jclass currClass, jint length); jclass JVM_LoadClass0(JNIEnv *env, jobject obj, jclass currClass, jstring currClassName); void JVM_ResolveClass(JNIEnv *env, jclass cls); jbyteArray JVM_GetFieldAnnotations(JNIEnv *env, jobject field); jbyteArray JVM_GetMethodAnnotations(JNIEnv *env, jobject method); jbyteArray JVM_GetMethodDefaultAnnotationValue(JNIEnv *env, jobject method); jbyteArray JVM_GetMethodParameterAnnotations(JNIEnv *env, jobject method); jboolean JVM_CX8Field(JNIEnv *env, jobject obj, jfieldID fldID, jlong oldVal, jlong newVal); jint JVM_GetLastErrorString(char *buf, int len); jint JVM_Open(const char *fname, jint flags, jint mode); jint JVM_Close(jint fd); jint JVM_Read(jint fd, char *buf, jint nbytes); jint JVM_Write(jint fd, char *buf, jint nbytes); jint JVM_Available(jint fd, jlong *pbytes); jlong JVM_Lseek(jint fd, jlong offset, jint whence); jint JVM_SetLength(jint fd, jlong length); jint JVM_Sync(jint fd); jint JVM_InitializeSocketLibrary(void); jint JVM_Socket(jint domain, jint type, jint protocol); jint JVM_SocketClose(jint fd); jint JVM_SocketShutdown(jint fd, jint howto); jint JVM_Recv(jint fd, char *buf, jint nBytes, jint flags); jint JVM_Send(jint fd, char *buf, jint nBytes, jint flags); jint JVM_Timeout(int fd, long timeout); jint JVM_Listen(jint fd, jint count); jint JVM_Connect(jint fd, struct sockaddr *him, jint len); jint JVM_Bind(jint fd, struct sockaddr *him, jint len); jint JVM_Accept(jint fd, struct sockaddr *him, jint *len); jint JVM_RecvFrom(jint fd, char *buf, int nBytes, int flags, struct sockaddr *from, int *fromlen); jint JVM_GetSockName(jint fd, struct sockaddr *him, int *len); jint JVM_GetSockOpt(jint fd, int level, int optname, char *optval, int *optlen); jint JVM_SetSockOpt(jint fd, int level, int optname, const char *optval, int optlen); int JVM_GetHostName(char* name, int namelen); jintArray JVM_GetThreadStateValues(JNIEnv* env, jint javaThreadState); jobjectArray JVM_GetThreadStateNames(JNIEnv* env, jint javaThreadState, jintArray values);
12-09-2014