Created
March 15, 2022 18:01
-
-
Save timmw/69623fe783ed217aa6194589d3bc4607 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Hello! I'm attempting to get the BouncyCastle JCA provider to work with native-image and not having much luck. Can anyone tell me if I should be registering BouncyCastle via the <java-home>/lib/security/java.security file? When I do, I get errors like | |
`com.oracle.svm.core.util.UserError$UserException: Classes that should be initialized at run time got initialized during image building: | |
org.bouncycastle.jce.provider.BouncyCastleProvider was unintentionally initialized at build time. org.bouncycastle.jce.provider.BouncyCastleProvider caused initialization of this class with the following trace: | |
at org.bouncycastle.jce.provider.BouncyCastleProvider.<clinit>(BouncyCastleProvider.java:61) | |
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Unknown Source) | |
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) | |
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) | |
at java.lang.reflect.Constructor.newInstance(Constructor.java:490) | |
at java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:780) | |
at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:722) | |
at java.util.ServiceLoader$3.next(ServiceLoader.java:1395) | |
at sun.security.jca.ProviderConfig$ProviderLoader.load(ProviderConfig.java:340) | |
at sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:248) | |
at sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:242) | |
at java.security.AccessController.doPrivileged(Unknown Source) | |
at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:242) | |
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:222) | |
at sun.security.jca.ProviderList.getProvider(ProviderList.java:266) | |
at sun.security.jca.ProviderList$3.get(ProviderList.java:156) | |
at sun.security.jca.ProviderList$3.get(ProviderList.java:151) | |
at java.util.AbstractList$Itr.next(AbstractList.java:371) | |
at java.util.AbstractCollection.toArray(AbstractCollection.java:144) | |
at java.util.ArrayList.<init>(ArrayList.java:179) | |
at com.oracle.svm.hosted.SecurityServicesFeature.cleanUnregisteredProviders(SecurityServicesFeature.java:363) | |
at com.oracle.svm.core.jdk.Target_sun_security_jca_Providers$ProviderListTransformer.transform(SecuritySubstitutions.java:700) | |
at com.oracle.svm.hosted.substitute.ComputedValueField.computeValue(ComputedValueField.java:321) | |
at com.oracle.svm.hosted.substitute.ComputedValueField.readValue(ComputedValueField.java:269) | |
at com.oracle.svm.core.meta.ReadableJavaField.readFieldValue(ReadableJavaField.java:36) | |
at com.oracle.svm.hosted.ameta.AnalysisConstantReflectionProvider.readValue(AnalysisConstantReflectionProvider.java:99) | |
at com.oracle.svm.hosted.ameta.AnalysisConstantReflectionProvider.readFieldValue(AnalysisConstantReflectionProvider.java:81) | |
at com.oracle.graal.pointsto.ObjectScanner.scanField(ObjectScanner.java:153) | |
at com.oracle.graal.pointsto.ObjectScanner.scanRootField(ObjectScanner.java:140) | |
at com.oracle.graal.pointsto.ObjectScanner.lambda$scanBootImageHeapRoots$0(ObjectScanner.java:94) | |
at com.oracle.graal.pointsto.ObjectScanner$$Lambda$709/0x00000007c105d840.run(Unknown Source) | |
at com.oracle.graal.pointsto.ObjectScanner.lambda$execute$5(ObjectScanner.java:112) | |
at com.oracle.graal.pointsto.ObjectScanner$$Lambda$710/0x00000007c105dc40.run(Unknown Source) | |
at com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:195) | |
at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:179) | |
at com.oracle.graal.pointsto.util.CompletionExecutor$$Lambda$485/0x00000007c0fedc40.run(Unknown Source) | |
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426) | |
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) | |
at java.util.concurrent.ForkJoinPool.awaitQuiescence(ForkJoinPool.java:2984) | |
at com.oracle.graal.pointsto.util.CompletionExecutor.complete(CompletionExecutor.java:245) | |
at com.oracle.graal.pointsto.PointsToAnalysis.checkObjectGraph(PointsToAnalysis.java:683) | |
at com.oracle.graal.pointsto.PointsToAnalysis.finish(PointsToAnalysis.java:647) | |
at com.oracle.graal.pointsto.PointsToAnalysis.runAnalysis(PointsToAnalysis.java:734) | |
at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:702) | |
at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:537) | |
at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:494) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:426) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:587) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:126) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:617) | |
at com.oracle.svm.core.util.UserError.abort(UserError.java:73) | |
at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.checkDelayedInitialization(ConfigurableClassInitialization.java:555) | |
at com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.duringAnalysis(ClassInitializationFeature.java:167) | |
at com.oracle.svm.hosted.NativeImageGenerator.lambda$runPointsToAnalysis$10(NativeImageGenerator.java:704) | |
at com.oracle.svm.hosted.FeatureHandler.forEachFeature(FeatureHandler.java:74) | |
at com.oracle.svm.hosted.NativeImageGenerator.lambda$runPointsToAnalysis$11(NativeImageGenerator.java:704) | |
at com.oracle.graal.pointsto.PointsToAnalysis.runAnalysis(PointsToAnalysis.java:755) | |
at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:702) | |
at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:537) | |
at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:494) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:426) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:587) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:126) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:617)` | |
When I try to force BC to init and run time using `--initialize-at-run-time=org.bouncycastle.jce.provider.BouncyCastleProvider` I get this error: | |
`com.oracle.svm.core.util.UserError$UserException: Classes that should be initialized at run time got initialized during image building: | |
org.bouncycastle.jce.provider.BouncyCastleProvider the class was requested to be initialized at run time (from the command line with 'org.bouncycastle.jce.provider.BouncyCastleProvider'). org.bouncycastle.jce.provider.BouncyCastleProvider caused initialization of this class with the following trace: | |
at org.bouncycastle.jce.provider.BouncyCastleProvider.<clinit>(BouncyCastleProvider.java:61) | |
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Unknown Source) | |
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) | |
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) | |
at java.lang.reflect.Constructor.newInstance(Constructor.java:490) | |
at java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:780) | |
at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:722) | |
at java.util.ServiceLoader$3.next(ServiceLoader.java:1395) | |
at sun.security.jca.ProviderConfig$ProviderLoader.load(ProviderConfig.java:340) | |
at sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:248) | |
at sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:242) | |
at java.security.AccessController.doPrivileged(Unknown Source) | |
at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:242) | |
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:222) | |
at sun.security.jca.ProviderList.getProvider(ProviderList.java:266) | |
at sun.security.jca.ProviderList$3.get(ProviderList.java:156) | |
at sun.security.jca.ProviderList$3.get(ProviderList.java:151) | |
at java.util.AbstractList$Itr.next(AbstractList.java:371) | |
at java.util.AbstractCollection.toArray(AbstractCollection.java:144) | |
at java.util.ArrayList.<init>(ArrayList.java:179) | |
at com.oracle.svm.hosted.SecurityServicesFeature.cleanUnregisteredProviders(SecurityServicesFeature.java:363) | |
at com.oracle.svm.core.jdk.Target_sun_security_jca_Providers$ProviderListTransformer.transform(SecuritySubstitutions.java:700) | |
at com.oracle.svm.hosted.substitute.ComputedValueField.computeValue(ComputedValueField.java:321) | |
at com.oracle.svm.hosted.substitute.ComputedValueField.readValue(ComputedValueField.java:269) | |
at com.oracle.svm.core.meta.ReadableJavaField.readFieldValue(ReadableJavaField.java:36) | |
at com.oracle.svm.hosted.ameta.AnalysisConstantReflectionProvider.readValue(AnalysisConstantReflectionProvider.java:99) | |
at com.oracle.svm.hosted.ameta.AnalysisConstantReflectionProvider.readFieldValue(AnalysisConstantReflectionProvider.java:81) | |
at com.oracle.graal.pointsto.ObjectScanner.scanField(ObjectScanner.java:153) | |
at com.oracle.graal.pointsto.ObjectScanner.scanRootField(ObjectScanner.java:140) | |
at com.oracle.graal.pointsto.ObjectScanner.lambda$scanBootImageHeapRoots$0(ObjectScanner.java:94) | |
at com.oracle.graal.pointsto.ObjectScanner$$Lambda$710/0x00000007c105e840.run(Unknown Source) | |
at com.oracle.graal.pointsto.ObjectScanner.lambda$execute$5(ObjectScanner.java:112) | |
at com.oracle.graal.pointsto.ObjectScanner$$Lambda$711/0x00000007c105ec40.run(Unknown Source) | |
at com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:195) | |
at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:179) | |
at com.oracle.graal.pointsto.util.CompletionExecutor$$Lambda$486/0x00000007c0fe4c40.run(Unknown Source) | |
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426) | |
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) | |
at java.util.concurrent.ForkJoinPool.awaitQuiescence(ForkJoinPool.java:2984) | |
at com.oracle.graal.pointsto.util.CompletionExecutor.complete(CompletionExecutor.java:245) | |
at com.oracle.graal.pointsto.PointsToAnalysis.checkObjectGraph(PointsToAnalysis.java:683) | |
at com.oracle.graal.pointsto.PointsToAnalysis.finish(PointsToAnalysis.java:647) | |
at com.oracle.graal.pointsto.PointsToAnalysis.runAnalysis(PointsToAnalysis.java:734) | |
at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:702) | |
at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:537) | |
at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:494) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:426) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:587) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:126) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:617) | |
at com.oracle.svm.core.util.UserError.abort(UserError.java:73) | |
at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.checkDelayedInitialization(ConfigurableClassInitialization.java:555) | |
at com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.duringAnalysis(ClassInitializationFeature.java:167) | |
at com.oracle.svm.hosted.NativeImageGenerator.lambda$runPointsToAnalysis$10(NativeImageGenerator.java:704) | |
at com.oracle.svm.hosted.FeatureHandler.forEachFeature(FeatureHandler.java:74) | |
at com.oracle.svm.hosted.NativeImageGenerator.lambda$runPointsToAnalysis$11(NativeImageGenerator.java:704) | |
at com.oracle.graal.pointsto.PointsToAnalysis.runAnalysis(PointsToAnalysis.java:755) | |
at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:702) | |
at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:537) | |
at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:494) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:426) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:587) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:126) | |
at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:617)` | |
Graal version: | |
GraalVM 22.0.0.2 Java 11 CE (Java Version 11.0.14+9-jvmci-22.0-b05) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment