COM4J дает сбой JVM с нарушением прав доступа - PullRequest
3 голосов
/ 23 июня 2011

Я пытаюсь взаимодействовать с 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.

...