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

exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new e8fd070f953 NIFI-16294 Guard against null controller status in 
SiteToSiteStatusReportingTask (#11627)
e8fd070f953 is described below

commit e8fd070f953e976cfb7841dddd81f199a597970a
Author: Sönke Liebau <[email protected]>
AuthorDate: Fri Sep 4 17:56:39 2026 +0200

    NIFI-16294 Guard against null controller status in 
SiteToSiteStatusReportingTask (#11627)
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../nifi/reporting/SiteToSiteStatusReportingTask.java      |  6 +++++-
 .../nifi/reporting/TestSiteToSiteStatusReportingTask.java  | 14 ++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteStatusReportingTask.java
 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteStatusReportingTask.java
index 1ce083b573c..e15415ed111 100644
--- 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteStatusReportingTask.java
+++ 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteStatusReportingTask.java
@@ -124,7 +124,11 @@ public class SiteToSiteStatusReportingTask extends 
AbstractSiteToSiteReportingTa
         processGroupIDToPath = new HashMap<>();
 
         final ProcessGroupStatus procGroupStatus = 
context.getEventAccess().getControllerStatus();
-        final String rootGroupName = procGroupStatus == null ? null : 
procGroupStatus.getName();
+        if (procGroupStatus == null) {
+            getLogger().debug("Controller status is not yet available; will 
report status on a subsequent trigger.");
+            return;
+        }
+        final String rootGroupName = procGroupStatus.getName();
 
         final String nifiUrl = 
context.getProperty(SiteToSiteUtils.INSTANCE_URL).evaluateAttributeExpressions().getValue();
         URL url;
diff --git 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteStatusReportingTask.java
 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteStatusReportingTask.java
index 89438c1d819..9596c77eb6e 100644
--- 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteStatusReportingTask.java
+++ 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteStatusReportingTask.java
@@ -125,6 +125,20 @@ public class TestSiteToSiteStatusReportingTask {
         assertEquals("UP_TO_DATE", versionedFlowState.getString());
     }
 
+    @Test
+    public void testNullControllerStatus() throws IOException, 
InitializationException {
+        final Map<PropertyDescriptor, String> properties = new HashMap<>();
+        properties.put(SiteToSiteUtils.BATCH_SIZE, "4");
+        
properties.put(SiteToSiteStatusReportingTask.COMPONENT_NAME_FILTER_REGEX, 
"Awesome.*");
+        
properties.put(SiteToSiteStatusReportingTask.COMPONENT_TYPE_FILTER_REGEX, ".*");
+
+        // The controller status is not yet available (e.g. during startup 
before the flow is initialized)
+        MockSiteToSiteStatusReportingTask task = initTask(properties, null);
+        assertDoesNotThrow(() -> task.onTrigger(context));
+
+        assertTrue(task.dataSent.isEmpty());
+    }
+
     @Test
     public void testComponentTypeFilter() throws IOException, 
InitializationException {
         final ProcessGroupStatus pgStatus = generateProcessGroupStatus("root", 
"Awesome", 1, 0);

Reply via email to