freemansoft / jacob-project

JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java. It uses JNI to make native calls to the COM libraries. JACOB runs on x86 and x64 environments supporting 32 bit and 64 bit JVMs. This repository was migrated from Sourceforge 2020 Sep
GNU Lesser General Public License v2.1
521 stars 117 forks source link

JVM crash with EXCEPTION_ACCESS_VIOLATION at com.sap.smb.sbo.wrapper.com.Variant.release() #13

Open mysticfall opened 3 years ago

mysticfall commented 3 years ago

When running an web application on OpenJDK 11 which invokes SAP B1 via SBO API, the JVM occasionally crashes with the following stacktrace:

#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffe478970c0, pid=4228, tid=6116
#
# JRE version: OpenJDK Runtime Environment AdoptOpenJDK (11.0.10+9) (build 11.0.10+9)
# Java VM: OpenJDK 64-Bit Client VM AdoptOpenJDK (11.0.10+9, mixed mode, serial gc, windows-amd64)
# Problematic frame:
# C  [combase.dll+0x370c0]
...
Stack: [0x00000027c4b00000,0x00000027c4c00000],  sp=0x00000027c4bfebd0,  free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [combase.dll+0x370c0]
C  [combase.dll+0x1a90f3]
C  [OLEAUT32.dll+0x1525]
C  [sbojni.dll+0xb8a2]
C  0x0000002742df07b3

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 8175  com.sap.smb.sbo.wrapper.com.Variant.release()V (0 bytes) @ 0x0000002742df071b [0x0000002742df06e0+0x000000000000003b]
J 8174 c1 com.sap.smb.sbo.wrapper.com.Variant.finalize()V (14 bytes) @ 0x0000002742df0adc [0x0000002742df0aa0+0x000000000000003c]
J 8173 c1 java.lang.ref.Finalizer.runFinalizer(Ljdk/internal/misc/JavaLangAccess;)V java.base@11.0.10 (117 bytes) @ 0x0000002742df01bc [0x0000002742deff40+0x000000000000027c]
J 8179% c1 java.lang.ref.Finalizer$FinalizerThread.run()V java.base@11.0.10 (56 bytes) @ 0x0000002742df1a24 [0x0000002742df1720+0x0000000000000304]
v  ~StubRoutines::call_stub

This appears to be a similar problem with this issue, and potentially this one also.

I wonder if this project is still active and if its releases are backward compatible, so they can be used as a drop-in replacement for an older version.

Thanks in advance!