From b481994355d03acfbc773b819b24bee64133c4b1 Mon Sep 17 00:00:00 2001
From: Fouad Almalki <me@fouad.io>
Date: Tue, 17 Jun 2025 04:56:53 +0300
Subject: [PATCH 1/2] Add HijrahChronologyFeature which registers the required
 resources

---
 .../svm/core/jdk/HijrahChronologyFeature.java | 55 +++++++++++++++++++
 1 file changed, 55 insertions(+)
 create mode 100644 substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/HijrahChronologyFeature.java

diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/HijrahChronologyFeature.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/HijrahChronologyFeature.java
new file mode 100644
index 000000000000..b40ad91ce525
--- /dev/null
+++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/HijrahChronologyFeature.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * The Universal Permissive License (UPL), Version 1.0
+ *
+ * Subject to the condition set forth below, permission is hereby granted to any
+ * person obtaining a copy of this software, associated documentation and/or
+ * data (collectively the "Software"), free of charge and under any and all
+ * copyright rights in the Software, and any and all patent rights owned or
+ * freely licensable by each licensor hereunder covering either (i) the
+ * unmodified Software as contributed to or provided by such licensor, or (ii)
+ * the Larger Works (as defined below), to deal in both
+ *
+ * (a) the Software, and
+ *
+ * (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
+ * one is included with the Software each a "Larger Work" to which the Software
+ * is contributed by such licensors),
+ *
+ * without restriction, including without limitation the rights to copy, create
+ * derivative works of, display, perform, and distribute the Software and make,
+ * use, sell, offer for sale, import, export, have made, and have sold the
+ * Software and the Larger Work(s), and to sublicense the foregoing rights on
+ * either these or other terms.
+ *
+ * This license is subject to the following condition:
+ *
+ * The above copyright notice and either this complete permission notice or at a
+ * minimum a reference to the UPL must be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package com.oracle.svm.core.jdk;
+
+import org.graalvm.nativeimage.hosted.RuntimeResourceAccess;
+
+import com.oracle.svm.core.feature.AutomaticallyRegisteredFeature;
+import com.oracle.svm.core.feature.InternalFeature;
+
+@AutomaticallyRegisteredFeature
+public class HijrahChronologyFeature implements InternalFeature {
+    @Override
+    public void beforeAnalysis(BeforeAnalysisAccess access) {
+        access.registerReachabilityHandler((e) -> RuntimeResourceAccess.addResource(Class.class.getModule(),
+                "java/time/chrono/hijrah-config-Hijrah-umalqura_islamic-umalqura.properties"), access.findClassByName("java.time.chrono.HijrahChronology"));
+    }
+}
\ No newline at end of file

From a3b7accb68a6796909b38bd93fcb34b3a9b5876b Mon Sep 17 00:00:00 2001
From: Fouad Almalki <me@fouad.io>
Date: Tue, 17 Jun 2025 05:16:48 +0300
Subject: [PATCH 2/2] Remove initializeAtRunTime("HijrahChronology") which
 causes NPE

---
 .../src/com/oracle/svm/hosted/jdk/JDKInitializationFeature.java  | 1 -
 1 file changed, 1 deletion(-)

diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/jdk/JDKInitializationFeature.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/jdk/JDKInitializationFeature.java
index 2b7938a3d48d..87fad4df64b0 100644
--- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/jdk/JDKInitializationFeature.java
+++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/jdk/JDKInitializationFeature.java
@@ -72,7 +72,6 @@ public void afterRegistration(AfterRegistrationAccess access) {
         rci.initializeAtBuildTime("java.nio", JDK_CLASS_REASON);
         rci.initializeAtBuildTime("java.text", JDK_CLASS_REASON);
         rci.initializeAtBuildTime("java.time", JDK_CLASS_REASON);
-        rci.initializeAtRunTime("java.time.chrono.HijrahChronology", "Reads java.home in class initializer.");
         rci.initializeAtBuildTime("java.util", JDK_CLASS_REASON);
         rci.initializeAtRunTime("java.util.concurrent.SubmissionPublisher", "Executor service must be recomputed");