-
Notifications
You must be signed in to change notification settings - Fork 428
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
Pico CLI runtime issue on Graal 23 - picocli.CommandLine$InitializationException Cannot instantiate the class has no constructor #2357
Comments
This sounds like a bug in GraalVM 23, but just to double check, can you provide the contents of your |
I had that feeling as well, but wasn't sure. my graalvm config files looks like: [
{
"name": "nl.altindag.crip.command.CertificateRipper",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true
},
{
"name": "nl.altindag.crip.command.SharedProperties",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true,
"fields": [
{
"name": "urls"
},
{
"name": "proxyHost"
},
{
"name": "proxyPort"
},
{
"name": "proxyUser"
},
{
"name": "proxyPassword"
},
{
"name": "timeoutInMilliseconds"
},
{
"name": "resolveRootCa"
}
]
},
{
"name": "nl.altindag.crip.command.PrintCommand",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true,
"fields": [
{
"name": "sharedProperties"
},
{
"name": "format"
}
]
},
{
"name": "nl.altindag.crip.command.export.ExportCommand",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true
},
{
"name": "nl.altindag.crip.command.export.FileExport",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true,
"fields": [
{
"name": "sharedProperties"
},
{
"name": "destination"
}
]
},
{
"name": "nl.altindag.crip.command.export.CombinableFileExport",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true,
"fields": [
{
"name": "combined"
}
]
},
{
"name": "nl.altindag.crip.command.export.KeyStoreExportCommand",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true,
"fields": [
{
"name": "password"
}
]
},
{
"name": "nl.altindag.crip.command.export.Pkcs12ExportCommand",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true
},
{
"name": "nl.altindag.crip.command.export.JavaKeyStoreExportCommand",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true
},
{
"name": "nl.altindag.crip.command.export.DerExportCommand",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true
},
{
"name": "nl.altindag.crip.command.export.PemExportCommand",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true,
"fields": [
{
"name": "includeHeader"
}
]
}
] I also attempted to add: {
"name": "nl.altindag.crip.command.VersionProvider",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true
} However that resulted in
|
Created an issue at the graal github repo: |
In addition to adding {
"name": "nl.altindag.crip.command.VersionProvider",
"allDeclaredConstructors": true,
"allPublicConstructors": true,
"allDeclaredMethods": true,
"allPublicMethods": true
} Can you also try adding this? {
"name" : "picocli.CommandLine$AutoHelpMixin",
"allDeclaredConstructors" : true,
"allPublicConstructors" : true,
"allDeclaredMethods" : true,
"allPublicMethods" : true,
"fields" : [
{ "name" : "helpRequested" },
{ "name" : "versionRequested" }
]
} These should have been added by the picocli annotation processor. This may be a bug in the picocli annotation processor. |
This did the trick, amazing that you figured it out! Any idea why this issue is popping up with GraalVM 23? and not on version 22? |
I noticed that Pico CLI is working on Graal 22 but not on Graal 23 anymore when creating/running a native image. I wasn't quite sure where to create this issue as I am not sure where it could be fixed. So I was in doubt whether Graal has caused an issue and has regression. I wanted to raise this issue first here as you are the library maintainer and maybe can easily find the issue and if it is caused by the Graal changes itself we can provide context to them to resolve it on their side if that is the case.
I am using Pico CLI alongside with Graal to create a native image for Certificate Ripper. Recently I added
VersionProvider
class which implementsCommandLine.IVersionProvider
to provide the version. On Graal 22 this works, however on version 23 it gives me the following error:How to reproduce?
git clone https://github.com/Hakky54/certificate-ripper.git
mvn clean install -Pnative-image
./target/crip
(it does not give a runtime exception)Any idea what the root cause could be? Adding a default constructor to the VersionProvider did not work.
The text was updated successfully, but these errors were encountered: