Skip to content

Commit

Permalink
Reinitialize sun.security.pkcs11.P11Util at runtime
Browse files Browse the repository at this point in the history
Fixes build error:
```
Error: Detected a java.lang.ref.Cleaner object in the image heap which uses a daemon thread that invokes cleaning actions, but threads running in the image generator are no longer running at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.lang.ref.Cleaner. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Detailed message:
Trace: Object was reached by
  trying to constant fold static field sun.security.pkcs11.P11Util.cleaner
    at sun.security.pkcs11.wrapper.PKCS11.<init>(PKCS11.java:170)
  parsing method sun.security.pkcs11.wrapper.PKCS11.<init>(PKCS11.java:154) reachable via the parsing context
    at static root method.(Unknown Source)
```

(cherry picked from commit 80340d0)
  • Loading branch information
zakkak authored and gsmet committed May 9, 2023
1 parent acf6b29 commit 8bc183a
Showing 1 changed file with 2 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,8 @@ private static void prepareBouncyCastleProvider(BuildProducer<ReflectiveClassBui
runtimeReInitialized.produce(new RuntimeReinitializedClassBuildItem("org.bouncycastle.jcajce.spec.ECUtil"));
}

// Reinitialize class because it embeds a java.lang.ref.Cleaner instance in the image heap
runtimeReInitialized.produce(new RuntimeReinitializedClassBuildItem("sun.security.pkcs11.P11Util"));
}

@BuildStep
Expand Down

0 comments on commit 8bc183a

Please sign in to comment.