Open schuerg opened 9 months ago
I went through the same bug with those versions:
adorsys/keycloak-config-cli:6.1.6-25.0.1
note: Adding the description in the config file (yaml in my case) did not fix the problem, I had to manually add a description for my default role in the database
2024-08-28T16:36:18.087Z INFO 1 --- [ main] d.a.k.config.KeycloakConfigApplication : Starting KeycloakConfigApplication v6.1.6 using Java 21.0.4 with PID 1 (/app/keycloak-config-cli.jar started by nobody in /)
2024-08-28T16:36:18.093Z INFO 1 --- [ main] d.a.k.config.KeycloakConfigApplication : No active profile set, falling back to 1 default profile: "default"
2024-08-28T16:36:18.573Z INFO 1 --- [ main] d.a.k.config.KeycloakConfigApplication : Started KeycloakConfigApplication in 0.865 seconds (process running for 1.197)
2024-08-28T16:36:19.141Z INFO 1 --- [ main] d.a.k.config.KeycloakConfigRunner : Importing file 'file:/var/keycloak_config_sync/configuration.yaml'
2024-08-28T16:36:19.339Z INFO 1 --- [ main] d.a.k.config.provider.KeycloakProvider : Wait 120 seconds until http://keycloak:8080 is available ...
2024-08-28T16:36:19.836Z INFO 1 --- [ main] d.a.k.config.KeycloakConfigRunner : keycloak-config-cli ran in 00:00.881.
2024-08-28T16:36:19.837Z INFO 1 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger :
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-08-28T16:36:19.852Z ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "org.keycloak.representations.idm.RoleRepresentation.getDescription()" is null
at de.adorsys.keycloak.config.util.KeycloakUtil.isDefaultRole(KeycloakUtil.java:49)
at de.adorsys.keycloak.config.service.RoleImportService.deleteRealmRolesMissingInImport(RoleImportService.java:262)
at de.adorsys.keycloak.config.service.RoleImportService.doImport(RoleImportService.java:94)
at de.adorsys.keycloak.config.service.RealmImportService.configureRealm(RealmImportService.java:204)
at de.adorsys.keycloak.config.service.RealmImportService.updateRealm(RealmImportService.java:196)
at de.adorsys.keycloak.config.service.RealmImportService.updateRealmIfNecessary(RealmImportService.java:154)
at de.adorsys.keycloak.config.service.RealmImportService.doImport(RealmImportService.java:145)
at de.adorsys.keycloak.config.KeycloakConfigRunner.run(KeycloakConfigRunner.java:79)
at org.springframework.boot.SpringApplication.lambda$callRunner$5(SpringApplication.java:790)
at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:83)
at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60)
at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:88)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:789)
at org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:774)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:774)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:341)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
at de.adorsys.keycloak.config.KeycloakConfigApplication.main(KeycloakConfigApplication.java:35)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53)
at org.springframework.boot.loader.launch.PropertiesLauncher.main(PropertiesLauncher.java:574)
error Command failed with exit code 1.
Current Behavior
An error is thrown when
org.keycloak.representations.idm.RoleRepresentation.getDescription()
returns null.It happens, when roles have no description.
This happens here https://github.com/adorsys/keycloak-config-cli/blob/main/src/main/java/de/adorsys/keycloak/config/util/KeycloakUtil.java#L50
Here is the complete error log with stacktrace:
Expected Behavior
Should execute without error.
Environment
21.1.2
docker.io/adorsys/keycloak-config-cli:5.10.0-21.1.1