Skip to content

Commit 80340d0

Browse files
committed
Reinitialize sun.security.pkcs11.P11Util at runtime
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) ```
1 parent c9e2085 commit 80340d0

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

extensions/security/deployment/src/main/java/io/quarkus/security/deployment/SecurityProcessor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,8 @@ private static void prepareBouncyCastleProvider(CurateOutcomeBuildItem curateOut
231231
runtimeReInitialized.produce(new RuntimeReinitializedClassBuildItem("org.bouncycastle.jcajce.spec.ECUtil"));
232232
}
233233

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

236238
@BuildStep

0 commit comments

Comments
 (0)