Skip to content

Commit 655abed

Browse files
committed
Handle missing java.desktop reachability triggers
1 parent b38328f commit 655abed

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/jdk/JNIRegistrationAWTSupport.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
*/
2525
package com.oracle.svm.hosted.jdk;
2626

27+
import java.util.ArrayList;
28+
import java.util.List;
29+
2730
import org.graalvm.nativeimage.Platform;
2831
import org.graalvm.nativeimage.Platforms;
2932
import com.oracle.svm.shared.feature.AutomaticallyRegisteredFeature;
@@ -56,9 +59,12 @@ public void beforeAnalysis(BeforeAnalysisAccess access) {
5659
NativeLibrarySupport.singleton().preregisterUninitializedBuiltinLibrary("fontmanager");
5760
}
5861
if (isLinux() || isDarwin()) {
59-
access.registerReachabilityHandler(JNIRegistrationAWTSupport::registerHeadlessJavaDesktopSupport,
60-
method(access, "java.awt.image.ColorModel", "loadLibraries"),
61-
method(access, "java.awt.Toolkit", "loadLibraries"));
62+
List<Object> triggers = new ArrayList<>();
63+
optionalMethod(access, "java.awt.image.ColorModel", "loadLibraries").ifPresent(triggers::add);
64+
optionalMethod(access, "java.awt.Toolkit", "loadLibraries").ifPresent(triggers::add);
65+
if (!triggers.isEmpty()) {
66+
access.registerReachabilityHandler(JNIRegistrationAWTSupport::registerHeadlessJavaDesktopSupport, triggers.toArray());
67+
}
6268
}
6369
}
6470

0 commit comments

Comments
 (0)