Good day!
Maybe there is a workaround for this other than modifying the JDK installation (removing the jdk-21\bin\msvcp140.dll file) on all end user machines.
Note: I have submitted a bug report.
This issue:
There is an outdated version of the MS redistributables, specifically msvcp140.dll, located in the bin folder of installed JDKs.
A recent build of the native GDAL libraries crashes when used within a Java application using the Oracle JDK 21.0.5 but works once the jdk-21\bin\msvcp140.dll file is removed.
The application also works without crashing when using the most recent Adoptium JDK. Here is the same bug from earlier in the year at Adoptium which was resolved: https://github.com/adoptium/temurin-build/issues/3887
According to available information, the Microsoft Visual C++ Redistributable version 14.36.32532 (in the Oracle JDK) was last updated on May 16, 2023 and may be reaching end of support later this year. The latest release of the Microsoft Visual C++ Redistributable is 14.42.34433 which was released on November 12, 2024.
--------------- T H R E A D ---------------
Current thread (0x000001ffe2e31120): JavaThread "pool-3-thread-2" [_thread_in_native, id=116064, stack(0x000000f05ad00000,0x000000f05ae00000) (1024K)]
Stack: [0x000000f05ad00000,0x000000f05ae00000], sp=0x000000f05adfe430, free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [msvcp140.dll+0x12f58]
C [gdal.dll+0xb970ad]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.gdal.gdal.gdalJNI.Open__SWIG_0(Ljava/lang/String;I)J+0
j org.gdal.gdal.gdal.Open(Ljava/lang/String;I)Lorg/gdal/gdal/Dataset;+2
j ...
J 10393 c1 java.util.concurrent.FutureTask.run()V java.base@21.0.5 (123 bytes) @ 0x000001ff89922e6c [0x000001ff899226c0+0x00000000000007ac]
j java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+92 java.base@21.0.5
j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 java.base@21.0.5
J 5383 c1 java.lang.Thread.run()V java.base@21.0.5 (23 bytes) @ 0x000001ff88d9a87c [0x000001ff88d9a660+0x000000000000021c]
v ~StubRoutines::call_stub 0x000001ff8f81100d
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000000
Workaround: Delete jdk-21\bin\msvcp140.dll