A .NET application that uses JDK 1.4.2 crashes in JNI code
The crash dump can be obtained from /java/jle_specials/<CU>/65951304/"user(July 3rd)(Case65951304).zip"
JDK in use is JDK 1.4.2 u15 fcs (b02)
The customer admits that they are using Visual Studio 2003 for the native code and there is no way that they can switch to Visual Studio 6.0.
Looking at the crash one can see the following stack trace of the crashing thread
0be45478 080e7ffd jvm!get_method_id(struct JNIEnv_ * env = 0x3099fad0, class _jclass * clazz = 0x00000001, char * name_str = 0x3099fe88 "???", char * sig = 0x3099fe88 "???", int is_static = 815398536, class Thread * __the_thread__ = 0x3099fe88)+0xb6 [D:/BUILD_AREA/jdk142-update/ws/fcs/hotspot\src\share\vm\prims\jni.cpp @ 878]
0be454a4 10004962 jvm!jni_GetMethodID(struct JNIEnv_ * env = 0x084ba534, class _jclass * clazz = 0x084b604c, char * name = 0x0052d9ac "setSpClientExternalId", char * sig = 0x0051ff80 "(Ljava/lang/String;Lcom/<CU>/portal/cmf/core/CmfTransaction;)V")+0x7d [D:/BUILD_AREA/jdk142-update/ws/fcs/hotspot\src\share\vm\prims\jni.cpp @ 904]
WARNING: Stack unwind information not available. Following frames may be wrong.
0be454c0 10021011 CppRt20!jcpp_base::get_field_owner_type_name+0x205
0be454e4 1002434e CppRt20!jcpp_method::get_methodid+0x66
0be45514 0048c60e CppRt20!jcpp_void_method::call+0x39
0be4553c 0042a252 CCTTapiC+0x8c60e
0be45540 0be45588 CCTTapiC+0x2a252
0be45544 0be455cc 0xbe45588
0be45588 0051932c 0xbe455cc
0be4558c 00519310 CCTTapiC+0x11932c
0be45590 00519324 CCTTapiC+0x119310
0be45594 00519334 CCTTapiC+0x119324
0be45598 00000000 CCTTapiC+0x119334
Note that arguments change between the top 2 frames. The body of function jni_GetMethodID is trivial
JNI_ENTRY(jmethodID, jni_GetMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig))
JNIWrapper("GetMethodID");
return get_method_id(env, clazz, (char*) name, (char*) sig, false, thread);
JNI_END
Therefore it is suspected that the crash is due to the wrong argument passing to jni_GetMethodID. This could be caused by incompatibility of runtime libraries that come with Visual Studio 6.0 amd 2003.
The customer needs to see a clear message about why this is happening.
If JDK has compatibility issues with other compilers/versions there must be a clear description of those limitations in the documentation. In this case this bug will be reclasified and re-addressed to the documentation
The crash dump can be obtained from /java/jle_specials/<CU>/65951304/"user(July 3rd)(Case65951304).zip"
JDK in use is JDK 1.4.2 u15 fcs (b02)
The customer admits that they are using Visual Studio 2003 for the native code and there is no way that they can switch to Visual Studio 6.0.
Looking at the crash one can see the following stack trace of the crashing thread
0be45478 080e7ffd jvm!get_method_id(struct JNIEnv_ * env = 0x3099fad0, class _jclass * clazz = 0x00000001, char * name_str = 0x3099fe88 "???", char * sig = 0x3099fe88 "???", int is_static = 815398536, class Thread * __the_thread__ = 0x3099fe88)+0xb6 [D:/BUILD_AREA/jdk142-update/ws/fcs/hotspot\src\share\vm\prims\jni.cpp @ 878]
0be454a4 10004962 jvm!jni_GetMethodID(struct JNIEnv_ * env = 0x084ba534, class _jclass * clazz = 0x084b604c, char * name = 0x0052d9ac "setSpClientExternalId", char * sig = 0x0051ff80 "(Ljava/lang/String;Lcom/<CU>/portal/cmf/core/CmfTransaction;)V")+0x7d [D:/BUILD_AREA/jdk142-update/ws/fcs/hotspot\src\share\vm\prims\jni.cpp @ 904]
WARNING: Stack unwind information not available. Following frames may be wrong.
0be454c0 10021011 CppRt20!jcpp_base::get_field_owner_type_name+0x205
0be454e4 1002434e CppRt20!jcpp_method::get_methodid+0x66
0be45514 0048c60e CppRt20!jcpp_void_method::call+0x39
0be4553c 0042a252 CCTTapiC+0x8c60e
0be45540 0be45588 CCTTapiC+0x2a252
0be45544 0be455cc 0xbe45588
0be45588 0051932c 0xbe455cc
0be4558c 00519310 CCTTapiC+0x11932c
0be45590 00519324 CCTTapiC+0x119310
0be45594 00519334 CCTTapiC+0x119324
0be45598 00000000 CCTTapiC+0x119334
Note that arguments change between the top 2 frames. The body of function jni_GetMethodID is trivial
JNI_ENTRY(jmethodID, jni_GetMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig))
JNIWrapper("GetMethodID");
return get_method_id(env, clazz, (char*) name, (char*) sig, false, thread);
JNI_END
Therefore it is suspected that the crash is due to the wrong argument passing to jni_GetMethodID. This could be caused by incompatibility of runtime libraries that come with Visual Studio 6.0 amd 2003.
The customer needs to see a clear message about why this is happening.
If JDK has compatibility issues with other compilers/versions there must be a clear description of those limitations in the documentation. In this case this bug will be reclasified and re-addressed to the documentation
- relates to
-
JDK-4874934 EXCEPTION_ACCESS_VIOLATION in java.net.Inet4AddressImpl.lookupAllHostAddr
- Closed