From a4164fca14dab7fca4d0eaec42aaafc203a31c60 Mon Sep 17 00:00:00 2001 From: csviri Date: Tue, 1 Feb 2022 13:31:25 +0100 Subject: [PATCH] fix: operator exception on miss of informer --- .../event/source/controller/ControllerResourceCache.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceCache.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceCache.java index 25c08d6af6..ddc7a7658f 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceCache.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceCache.java @@ -7,6 +7,7 @@ import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.client.informers.SharedIndexInformer; +import io.javaoperatorsdk.operator.OperatorException; import io.javaoperatorsdk.operator.api.config.Cloner; import io.javaoperatorsdk.operator.processing.event.ResourceID; import io.javaoperatorsdk.operator.processing.event.source.Cache; @@ -52,6 +53,11 @@ public Optional get(ResourceID resourceID) { sharedIndexInformer = sharedIndexInformers.get(resourceID.getNamespace().orElse(ANY_NAMESPACE_MAP_KEY)); } + if (sharedIndexInformer == null) { + throw new OperatorException( + "Cannot find informer for ResourceID: " + resourceID + ". This is usually " + + "due to invalid resource id mapping for registered informers."); + } var resource = sharedIndexInformer.getStore() .getByKey(io.fabric8.kubernetes.client.informers.cache.Cache.namespaceKeyFunc( resourceID.getNamespace().orElse(null),