This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-4.10.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-4.10.x by this push:
     new 8d85719d885 camel-kubernetes: fix secret in local mode can cause NPE
8d85719d885 is described below

commit 8d85719d885b516d3633d92821f125ca21675d37
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat May 10 11:17:10 2025 +0200

    camel-kubernetes: fix secret in local mode can cause NPE
---
 .../kubernetes/secrets/vault/SecretsDevConsole.java       | 15 +++++++++++----
 .../camel/dsl/jbang/core/commands/process/ListVault.java  | 10 +++++-----
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/vault/SecretsDevConsole.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/vault/SecretsDevConsole.java
index 2528a6f167b..3b7d32d9a61 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/vault/SecretsDevConsole.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/vault/SecretsDevConsole.java
@@ -22,6 +22,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
+import io.fabric8.kubernetes.client.KubernetesClient;
 import 
org.apache.camel.component.kubernetes.properties.SecretPropertiesFunction;
 import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PropertiesFunction;
@@ -66,8 +67,11 @@ public class SecretsDevConsole extends AbstractDevConsole {
 
         if (propertiesFunction != null) {
             sb.append("Kubernetes Secrets Cluster:");
-            sb.append(String.format("\n    Master Url: %s", 
propertiesFunction.getClient().getMasterUrl()));
-            sb.append("\n    Login: OAuth Token");
+            KubernetesClient client = propertiesFunction.getClient();
+            if (client != null && client.getMasterUrl() != null) {
+                sb.append(String.format("\n    Master Url: %s", 
client.getMasterUrl().toString()));
+                sb.append("\n    Login: OAuth Token");
+            }
             KubernetesVaultConfiguration kubernetes
                     = 
getCamelContext().getVaultConfiguration().getKubernetesVaultConfiguration();
             if (kubernetes != null) {
@@ -98,8 +102,11 @@ public class SecretsDevConsole extends AbstractDevConsole {
     protected JsonObject doCallJson(Map<String, Object> options) {
         JsonObject root = new JsonObject();
         if (propertiesFunction != null) {
-            root.put("masterUrl", 
propertiesFunction.getClient().getMasterUrl().toString());
-            root.put("login", "OAuth Token");
+            KubernetesClient client = propertiesFunction.getClient();
+            if (client != null && client.getMasterUrl() != null) {
+                root.put("masterUrl", client.getMasterUrl().toString());
+                root.put("login", "OAuth Token");
+            }
         }
         KubernetesVaultConfiguration kubernetes = 
getCamelContext().getVaultConfiguration().getKubernetesVaultConfiguration();
         if (kubernetes != null) {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListVault.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListVault.java
index 9ebb40d83dc..462fce318b5 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListVault.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListVault.java
@@ -90,7 +90,7 @@ public class ListVault extends ProcessWatchCommand {
                                 row.lastCheck = 
aws.getLongOrDefault("lastCheckTimestamp", 0);
                                 row.lastReload = 
aws.getLongOrDefault("lastReloadTimestamp", 0);
                                 JsonArray arr = (JsonArray) aws.get("secrets");
-                                for (int i = 0; i < arr.size(); i++) {
+                                for (int i = 0; arr != null && i < arr.size(); 
i++) {
                                     if (i > 0) {
                                         // create a copy for 2+ secrets
                                         row = row.copy();
@@ -107,7 +107,7 @@ public class ListVault extends ProcessWatchCommand {
                                 row.lastCheck = 
gcp.getLongOrDefault("lastCheckTimestamp", 0);
                                 row.lastReload = 
gcp.getLongOrDefault("lastReloadTimestamp", 0);
                                 JsonArray arr = (JsonArray) gcp.get("secrets");
-                                for (int i = 0; i < arr.size(); i++) {
+                                for (int i = 0; arr != null && i < arr.size(); 
i++) {
                                     if (i > 0) {
                                         // create a copy for 2+ secrets
                                         row = row.copy();
@@ -124,7 +124,7 @@ public class ListVault extends ProcessWatchCommand {
                                 row.lastCheck = 
azure.getLongOrDefault("lastCheckTimestamp", 0);
                                 row.lastReload = 
azure.getLongOrDefault("lastReloadTimestamp", 0);
                                 JsonArray arr = (JsonArray) 
azure.get("secrets");
-                                for (int i = 0; i < arr.size(); i++) {
+                                for (int i = 0; arr != null && i < arr.size(); 
i++) {
                                     if (i > 0) {
                                         // create a copy for 2+ secrets
                                         row = row.copy();
@@ -142,7 +142,7 @@ public class ListVault extends ProcessWatchCommand {
                                 row.lastCheck = 
kubernetes.getLongOrDefault("startCheckTimestamp", 0);
                                 row.lastReload = 
kubernetes.getLongOrDefault("lastReloadTimestamp", 0);
                                 JsonArray arr = (JsonArray) 
kubernetes.get("secrets");
-                                for (int i = 0; i < arr.size(); i++) {
+                                for (int i = 0; arr != null && i < arr.size(); 
i++) {
                                     if (i > 0) {
                                         // create a copy for 2+ secrets
                                         row = row.copy();
@@ -168,7 +168,7 @@ public class ListVault extends ProcessWatchCommand {
                                 row.lastCheck = 
cmKubernetes.getLongOrDefault("startCheckTimestamp", 0);
                                 row.lastReload = 
cmKubernetes.getLongOrDefault("lastReloadTimestamp", 0);
                                 JsonArray arr = (JsonArray) 
cmKubernetes.get("configmap");
-                                for (int i = 0; i < arr.size(); i++) {
+                                for (int i = 0; arr != null && i < arr.size(); 
i++) {
                                     if (i > 0) {
                                         // create a copy for 2+ configmap
                                         row = row.copy();

Reply via email to