Я получил это из файла дампа, сгенерированного jvm, когда он падал.Как вы можете видеть, java callstack вызывает собственный метод syncCalendarEntry.Тем не менее, собственный callstack пытается выполнить другой собственный метод.
Как это возможно?И есть идеи, как это исправить?
3XMTHREADINFO1 (native thread ID:0x1B24, native priority:0x5, native policy:UNKNOWN)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at com/rightsize/hessian/sync/endpoint/ems/DominoService.syncCalendarEntry(Native Method)
4XESTACKTRACE at sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method)
4XESTACKTRACE at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
4XESTACKTRACE at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
4XESTACKTRACE at java/lang/reflect/Method.invoke(Method.java:600)
4XESTACKTRACE at com/caucho/hessian/server/HessianSkeleton.invoke(HessianSkeleton.java:180)
4XESTACKTRACE at com/caucho/hessian/server/HessianSkeleton.invoke(HessianSkeleton.java:113)
4XESTACKTRACE at com/rightsize/hessian/sync/connector/HessianSyncHandler.handleRemoteMethod(HessianSyncHandler.java:115)
4XESTACKTRACE at com/rightsize/hessian/sync/connector/HessianSyncHandler$Listener.run(HessianSyncHandler.java:175)
3XMTHREADINFO3 Native callstack:
4XENATIVESTACK JNI_CreateJavaVM+0x3ab4 (0x00C3DDE4 [j9vm24+0x1dde4])
4XENATIVESTACK Java_com_rightsize_hessian_sync_endpoint_ems_DominoService_initializeCalendar+0x31b4 (0x725D8424 [LaunchService+0x8424])
4XENATIVESTACK (0x00C22651 [j9vm24+0x2651])
4XENATIVESTACK WaitForSingleObjectEx+0x8f (0x75631270 [kernel32+0x11270])
4XENATIVESTACK RtlFreeHandle+0x3598 (0x770C30FB [ntdll+0x630fb])
4XENATIVESTACK QueryPerformanceCounter+0x14 (0x756337B1 [kernel32+0x137b1])
4XENATIVESTACK (0x00C228AA [j9vm24+0x28aa])
4XENATIVESTACK JNI_CreateJavaVM+0xe7c (0x00C3B1AC [j9vm24+0x1b1ac])
4XENATIVESTACK JVM_InvokeMethod+0x50 (jvm.c:3969, 0x00024560 [jvm+0x4560])
4XENATIVESTACK _Java_sun_reflect_NativeMethodAccessorImpl_invoke0@20+0x15 (0x5E38663E [java+0x663e])
4XENATIVESTACK JNI_CreateJavaVM+0x2229d (0x00C5C5CD [j9vm24+0x3c5cd])
4XENATIVESTACK JNI_CreateJavaVM+0x22ac5 (0x00C5CDF5 [j9vm24+0x3cdf5])
4XENATIVESTACK BaseThreadInitThunk+0xe (0x756AF13C [kernel32+0x8f13c])
4XENATIVESTACK RtlCreateUserProcess+0x8c (0x770DD80D [ntdll+0x7d80d])
4XENATIVESTACK RtlCreateProcessParameters+0x4e (0x770DDA1F [ntdll+0x7da1f])
Это интерфейс метода вызова Java:
public native List<CalendarEntry> syncCalendarEntry(
UserProfile profile);
public native Object initializeCalendar(UserProfile profile,
List<CalendarEntry> entries);
Вот как они выглядят в сгенерированном заголовочном файле:
/*
* Class: DominoService
* Method: syncCalendarEntry
* Signature: (Lmodel/LaunchUserProfile;)Ljava/util/List;
*/
JNIEXPORT jobject JNICALL Java_DominoService_syncCalendarEntry
(JNIEnv *, jobject, jobject);
/*
* Class: DominoService
* Method: initializeCalendar
* Signature: (Lmodel/UserProfile;Ljava/util/List;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL Java_DominoService_initializeCalendar
(JNIEnv *, jobject, jobject, jobject);