Javatar81 / devjoy

2 stars 0 forks source link

Commons configuration ini interprets period in key as section #22

Open Javatar81 opened 9 months ago

Javatar81 commented 9 months ago

The git.config section https://docs.gitea.com/administration/config-cheat-sheet#git---config-options-gitconfig defines lowercase keys with periods to pass this into the git config file. This is problematic because a period is interpreted as section. Offending values are: diff.algorithm, core.logAllRefUpdates, gc.reflogExpire. Overriding the app.ini with one of those values leads to

io.devjoy.gitea.k8s.gitea.GiteaConfigSecretDependentResource -> java.lang.NullPointerException: Cannot invoke "Object.toString()" because "value" is null
        at org.apache.commons.configuration2.INIConfiguration.writeProperty(INIConfiguration.java:533)
        at org.apache.commons.configuration2.INIConfiguration.lambda$write$0(INIConfiguration.java:420)
        at java.base/java.lang.Iterable.forEach(Iterable.java:75)
        at org.apache.commons.configuration2.INIConfiguration.write(INIConfiguration.java:420)
        at io.devjoy.gitea.k8s.gitea.GiteaConfigSecretDependentResource.desired(GiteaConfigSecretDependentResource.java:174)
        at io.devjoy.gitea.k8s.gitea.GiteaConfigSecretDependentResource.desired(GiteaConfigSecretDependentResource.java:32)
        at io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource.reconcile(AbstractDependentResource.java:59)
        at io.javaoperatorsdk.operator.processing.dependent.SingleDependentResourceReconciler.reconcile(SingleDependentResourceReconciler.java:19)
        at io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource.reconcile(AbstractDependentResource.java:52)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.WorkflowReconcileExecutor$NodeReconcileExecutor.doRun(WorkflowReconcileExecutor.java:115)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.NodeExecutor.run(NodeExecutor.java:22)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1623)

        at io.javaoperatorsdk.operator.processing.dependent.workflow.WorkflowResult.throwAggregateExceptionIfErrorsPresent(WorkflowResult.java:41)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.WorkflowReconcileResult.throwAggregateExceptionIfErrorsPresent(WorkflowReconcileResult.java:9)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.DefaultWorkflow.reconcile(DefaultWorkflow.java:95)
        at io.javaoperatorsdk.operator.processing.Controller$1.execute(Controller.java:147)
        at io.javaoperatorsdk.operator.processing.Controller$1.execute(Controller.java:110)
        at io.javaoperatorsdk.operator.monitoring.micrometer.MicrometerMetrics.lambda$timeControllerExecution$0(MicrometerMetrics.java:163)
Javatar81 commented 5 months ago

Test again since we removed commons configuration library