Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Fatal error: EXCEPTION_ACCESS_VIOLATION

Help
A. Polo
2012-09-19
2013-05-20
  • A. Polo
    A. Polo
    2012-09-19

    Hi,

    I have a Java program that my predecessor in my position wrote and I am to complete and expand. It uses Jacob 1.16M2 ( on Windows XP 32 Bit) to access a COM control. There are some methods that take several arguments including 2-dimensional arrays in form of com.jacob.com.Variants. Those are created via Viariant.putSafeArray().
    Now, whenever I invoke such a method, I get a message like this:

    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d8fdd45, pid=5384, tid=5372
    #
    # JRE version: 6.0_21-b06
    # Java VM: Java HotSpot(TM) Client VM (17.0-b16 mixed mode, sharing windows-x86 )
    # Problematic frame:
    # V 
    #
    # An error report file with more information is saved as:
    # <path to eclipse project>\hs_err_pid5384.log
    #
    # If you would like to submit a bug report, please visit:
    #   http://java.sun.com/webapps/bugreport/crash.jsp
    #

    The log file contains a lot more information, but I can't really make much out of it. This stack trace might be the most helpful (dupeSearch is the method that tries tro invoke the COM method):

    Stack: ,  sp=0x0090f604,  free space=13d0090f138k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)

    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    j  com.jacob.com.Dispatch.invokev(Lcom/jacob/com/Dispatch;Ljava/lang/String;III[Lcom/jacob/com/Variant;[I)Lcom/jacob/com/Variant;+0
    j  com.jacob.com.Dispatch.invokev(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Lcom/jacob/com/Variant;[I)Lcom/jacob/com/Variant;+14
    j  com.jacob.com.Dispatch.callN(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;+15
    j  com.jacob.activeX.ActiveXComponent.invoke(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;+3
    j  crm.util.dedup.FuzzyDupes.dupeSearch(Lcom/jacob/com/Variant;IDDLjava/lang/String;Z)Lcom/jacob/com/Variant;+105
    j  crm.util.dedup.FuzzyDupesWrapper.dupeSearch([[Ljava/lang/String;IDDLjava/lang/String;Z)[[Ljava/lang/String;+20
    j  crm.util.dedup.FuzzyDupesTool.testDupeSearch()V+235
    j  crm.util.dedup.FuzzyDupesTool.main([Ljava/lang/String;)V+0
    v  ~StubRoutines::call_stub

    I really don't know what to do. Other methods of the API work fine, but these are the ones I need the most. Does anyone have any ideas?