Skip to content

[Native Image, WASM] Calling java.time.chrono.Chronology.getAvailableChronologies() results in a java.lang.NullPointerException #11402

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
2 tasks done
treblereel opened this issue Jun 12, 2025 · 1 comment
Assignees
Labels
bug native-image wasm-backend Issues related to the Wasm backend of GraalVM.

Comments

@treblereel
Copy link

Describe the Issue

When I call java.time.chrono.Chronology.getAvailableChronologies(), for example like this:

`
import java.time.chrono.Chronology;

public class App {

public static void main(String[] args) throws IOException {

for(Chronology chronology : Chronology.getAvailableChronologies()) {
  System.out.println(chronology.getId() + " - " + chronology.getClass().getName());
}

}

}
`
it results in a NullPointerException.

Using the latest version of GraalVM can resolve many issues.

GraalVM Version

java version "25" 2025-09-16 LTS
Java(TM) SE Runtime Environment Oracle GraalVM 25-dev+25.1 (build 25+25-LTS-jvmci-b01)
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 25-dev+25.1 (build 25+25-LTS-jvmci-b01, mixed mode, sharing)

Operating System and Version

OSX 15.4.1 (24E263)

Troubleshooting Confirmation

Run Command

it's maven setup:

app.zip

Expected Behavior

no NPE exception

Actual Behavior

java.lang.NullPointerException

Steps to Reproduce

  1. mvn clean package -Pwasm
  2. run http-server at web folder
  3. open broswer localhost:8080
  4. check console

Additional Context

Maybe it's somehow connected with ServiceLoader:

static Set getAvailableChronologies() {
initCache(); // force initialization
HashSet chronos = new HashSet<>(CHRONOS_BY_ID.values());

    /// Add in Chronologies from the ServiceLoader configuration
    ServiceLoader<Chronology> loader = ServiceLoader.load(Chronology.class);
    for (Chronology chrono : loader) {
        chronos.add(chrono);
    }
    return chronos;
}

but it's part of java

Run-Time Log Output and Error Messages

app.js:266 Exception in thread "main" java.lang.ExceptionInInitializerError

app.js:266 at genBacktrace (http://127.0.0.1:8080/app.js:1229:12)
app.js:266 at genBacktrace (http://127.0.0.1:8080/app.js:1299:32)
app.js:266 at _ClassInitializationInfo_doInitialize___ClassInitializationInfo_Class_V (wasm://wasm/02706d1a:wasm-function[918]:0x15c5f6)
app.js:266 at ClassInitializationInfo_slowPath___ClassInitializationInfo_Class_V (wasm://wasm/02706d1a:wasm-function[1329]:0x16da12)
app.js:266 at AbstractChronology_initCache___Z (wasm://wasm/02706d1a:wasm-function[9422]:0x2cdf23)
app.js:266 at AbstractChronology_getAvailableChronologies___Set (wasm://wasm/02706d1a:wasm-function[9430]:0x2ce667)
app.js:266 at App_main
$Ljava_lang_String__V (wasm://wasm/02706d1a:wasm-function[9475]:0x2d0991)
app.js:266 at WebImageJavaMainSupport_doRun
$Ljava_lang_String__WebImageJavaMainSupport$Runner_I (wasm://wasm/02706d1a:wasm-function[586]:0x14b8da)
app.js:266 at WebImageWasmGCJavaMainSupport_run
$Ljava_lang_String__I (wasm://wasm/02706d1a:wasm-function[1132]:0x16677f)
app.js:266 Caused by: java.lang.NullPointerException
app.js:266 at genBacktrace (http://127.0.0.1:8080/app.js:1229:12)
app.js:266 at genBacktrace (http://127.0.0.1:8080/app.js:1299:32)
app.js:266 at _ImplicitExceptions_throwNewNullPointerException___V (wasm://wasm/02706d1a:wasm-function[1309]:0x16cab2)
app.js:266 at _PathService$1_apply___Object_Z (wasm://wasm/02706d1a:wasm-function[8872]:0x2a47cc)
app.js:266 at _Iterators$5_computeNext___Object (wasm://wasm/02706d1a:wasm-function[7524]:0x259ddd)
app.js:266 at func.bridge._AbstractIterator.computeNext___Object (wasm://wasm/02706d1a:wasm-function[3190]:0x183321)
app.js:266 at _AbstractIterator_hasNext___Z (wasm://wasm/02706d1a:wasm-function[7526]:0x259f30)
app.js:266 at func.bridge._Iterator.hasNext___Z (wasm://wasm/02706d1a:wasm-function[3686]:0x185527)
app.js:266 at _Joiner_appendTo___Appendable_Iterator_Appendable (wasm://wasm/02706d1a:wasm-function[4023]:0x1939b8)


@selhagani
Copy link
Member

Hi @treblereel,

Thank you for reaching out to us about this.
Could you please try using the tracing agent to generate the configuration files to see if that will help solve your issue? More information about the tracing agent can be found here https://www.graalvm.org/latest/reference-manual/native-image/metadata/AutomaticMetadataCollection/

@selhagani selhagani self-assigned this Jun 13, 2025
@fniephaus fniephaus added the wasm-backend Issues related to the Wasm backend of GraalVM. label Jun 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug native-image wasm-backend Issues related to the Wasm backend of GraalVM.
Projects
None yet
Development

No branches or pull requests

3 participants