Я пытаюсь взаимодействовать с Dragon Naturally Speaking 11, используя COM4J (20110320). Он запускается успешно, и я могу взаимодействовать с COM-объектом, включая получение событий от него.
Однако, как только он запустится и будет ожидать поступления событий, JVM в конечном итоге завершится сбоем с EXCEPTION_ACCESS_VIOLATION. Время этого довольно нестабильно и может быть любым: от почти сразу до нескольких минут.
То, что сообщается как проблемный фрейм, изменяется, jvm.dll, oleaut32.dll и com4j-x86.dll все происходили с различными смещениями. Фреймы Java соответствуют:
j com4j.Variant.convertTo(Ljava/lang/Class;)Ljava/lang/Object;+0
j com4j.EventProxy$EventMethod.invoke(Ljava/lang/Object;I[Lcom4j/Variant;)Ljava/lang/Object;+85
j com4j.EventProxy.invoke(II[Lcom4j/Variant;)Ljava/lang/Object;+52
v ~StubRoutines::call_stub
j com4j.Win32Lock.suspend0(I)V+0
j com4j.Win32Lock.suspend()V+4,
j com4j.ComThread.run0()V+14
j com4j.ComThread.run()V+27
v ~StubRoutines::call_stub
Под управлением Windows 7 Pro SP1 x64, JDK 1.6.0u24 x86.
Я провел быстрый тест на C # с тем же COM-объектом, с которым он не разбился.
Кто-нибудь может поделиться своим пониманием?
Cheers,
Daniel.