From 25cf62637d614994bd35156d44b5aa0a22109b3b Mon Sep 17 00:00:00 2001 From: Victor Guerra Veloso Date: Tue, 14 Oct 2025 12:56:44 -0400 Subject: [PATCH] Lazily invoke findLibrary to avoid UnsatisfiedLinkError when service loaded SymbolLookup successfuly found library --- .../treesitter/jtreesitter/internal/ChainedLibraryLookup.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/treesitter/jtreesitter/internal/ChainedLibraryLookup.java b/src/main/java/io/github/treesitter/jtreesitter/internal/ChainedLibraryLookup.java index b89cd87..e661b1b 100644 --- a/src/main/java/io/github/treesitter/jtreesitter/internal/ChainedLibraryLookup.java +++ b/src/main/java/io/github/treesitter/jtreesitter/internal/ChainedLibraryLookup.java @@ -21,7 +21,8 @@ public SymbolLookup get(Arena arena) { for (var libraryLookup : serviceLoader) { lookup = lookup.or(libraryLookup.get(arena)); } - return lookup.or(findLibrary(arena)).or(Linker.nativeLinker().defaultLookup()); + + return lookup.or((name) -> findLibrary(arena).find(name)).or(Linker.nativeLinker().defaultLookup()); } private static SymbolLookup findLibrary(Arena arena) {