From: Olaf Wintermann Date: Thu, 28 May 2026 16:07:55 +0000 (+0200) Subject: improve toolkit initialization error handling, add hint to use -XstartOnFirstThread... X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=474ea0f2ab7504c468cae2b8b5d7c84d3c0b828d;p=rssreader.git improve toolkit initialization error handling, add hint to use -XstartOnFirstThread when needed --- diff --git a/ui-java/src/main/java/de/unixwork/ui/Toolkit.java b/ui-java/src/main/java/de/unixwork/ui/Toolkit.java index 684cc9e..274e0d0 100644 --- a/ui-java/src/main/java/de/unixwork/ui/Toolkit.java +++ b/ui-java/src/main/java/de/unixwork/ui/Toolkit.java @@ -90,6 +90,16 @@ public class Toolkit { propertiesData = null; } + MemorySegment ui_set_main_thread_error_msg_addr = lib.find("ui_set_main_thread_error_msg").orElseThrow(); + MethodHandle ui_set_main_thread_error_msg = linker.downcallHandle(ui_set_main_thread_error_msg_addr, FunctionDescriptor.ofVoid(ValueLayout.ADDRESS)); + try (Arena arena = Arena.ofConfined()) { + MemorySegment cstr = arena.allocateFrom("Add -XstartOnFirstThread to the JVM options."); + ui_set_main_thread_error_msg.invoke(cstr); + } catch (Throwable e) { + e.printStackTrace(); + System.exit(1); + } + // get init function MemorySegment ui_init_addr = lib.find("ui_init").orElseThrow(); FunctionDescriptor ui_init_sig = FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS);