leaves12138 opened a new pull request, #10100:
URL: https://github.com/apache/paimon/pull/10100

   ### Purpose
   
   Fix `JNIUtils.load` skipping every subsequent JNI library after the first 
successful load. The global boolean initialization flag incorrectly treats 
different library names as the same library.
   
   Track successful initialization in a set keyed by `jniName`. Keep the 
existing synchronized loading path, skip only names that have already loaded 
successfully, and do not cache failed loads so they remain retryable. No public 
API changes.
   
   ### Tests
   
   - Reproduced the bug with two minimal native libraries: the original 
implementation never invokes the second library's `JNI_OnLoad`.
   - Ran a standalone regression harness against real native libraries on both 
Java 8 and Java 11: independent libraries, repeated loading, missing resources, 
retry after a resource becomes available, retry after a native-load failure, 
and 96 concurrent calls across three libraries. All 12 checks passed.
   - `mvn -q -pl paimon-common spotless:check` passed with Java 8.
   - `git diff --check` passed.
   
   The native regression harness is an external validation fixture; no 
platform-specific test binaries are added to the repository.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to