From d6c63068266267d81e5937edb530f5dadc2fca9a Mon Sep 17 00:00:00 2001 From: c4lm Date: Sat, 7 Jun 2025 23:37:48 +0400 Subject: [PATCH] Fix NPE in KubectlTop - skip pods which are down --- .../kubernetes/client/extended/kubectl/KubectlTop.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/extended/src/main/java/io/kubernetes/client/extended/kubectl/KubectlTop.java b/extended/src/main/java/io/kubernetes/client/extended/kubectl/KubectlTop.java index 9afa9366be..7b9a12cfe3 100644 --- a/extended/src/main/java/io/kubernetes/client/extended/kubectl/KubectlTop.java +++ b/extended/src/main/java/io/kubernetes/client/extended/kubectl/KubectlTop.java @@ -138,6 +138,9 @@ private static PodMetrics findPodMetric(V1Pod pod, PodMetricsList list) { public static double podMetricSum(PodMetrics podMetrics, String metricName) { double sum = 0; + if (podMetrics == null) { + return 0; + } for (ContainerMetrics containerMetrics : podMetrics.getContainers()) { Quantity value = containerMetrics.getUsage().get(metricName); if (value != null) { @@ -170,7 +173,11 @@ public int compare(V1Pod arg0, V1Pod arg1) { List> result = new ArrayList<>(); for (V1Pod pod : items) { - result.add(new ImmutablePair<>((ApiType) pod, (MetricsType) findPodMetric(pod, metrics))); + PodMetrics podMetrics = findPodMetric(pod, metrics); + if (podMetrics == null) { + continue; + } + result.add(new ImmutablePair<>((ApiType) pod, (MetricsType) podMetrics)); } return result; }