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

markap14 pushed a commit to branch NIFI-15258
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit acd54791a522e1bfee3b608f20c6465608ad116a
Author: Mark Payne <[email protected]>
AuthorDate: Fri Jan 9 16:44:18 2026 -0500

    NIFI-15434: Ensure that we start or stop connectors on flow sync (#10737)
---
 .../serialization/VersionedFlowSynchronizer.java        | 17 ++++++++++++-----
 .../nifi/tests/system/connectors/ConnectorCrudIT.java   |  4 ++++
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/VersionedFlowSynchronizer.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/VersionedFlowSynchronizer.java
index 197800c470..000a4897a5 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/VersionedFlowSynchronizer.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/VersionedFlowSynchronizer.java
@@ -26,15 +26,15 @@ import org.apache.nifi.authorization.ManagedAuthorizer;
 import org.apache.nifi.bundle.BundleCoordinate;
 import org.apache.nifi.cluster.protocol.DataFlow;
 import org.apache.nifi.cluster.protocol.StandardDataFlow;
-import org.apache.nifi.components.connector.NamedStepConfiguration;
-import org.apache.nifi.components.connector.ConnectorConfiguration;
 import org.apache.nifi.components.connector.AssetReference;
-import org.apache.nifi.components.connector.ConnectorValueReference;
-import org.apache.nifi.components.connector.SecretReference;
-import org.apache.nifi.components.connector.StringLiteralValue;
+import org.apache.nifi.components.connector.ConnectorConfiguration;
 import org.apache.nifi.components.connector.ConnectorNode;
 import org.apache.nifi.components.connector.ConnectorRepository;
+import org.apache.nifi.components.connector.ConnectorValueReference;
 import org.apache.nifi.components.connector.FlowUpdateException;
+import org.apache.nifi.components.connector.NamedStepConfiguration;
+import org.apache.nifi.components.connector.SecretReference;
+import org.apache.nifi.components.connector.StringLiteralValue;
 import org.apache.nifi.components.validation.ValidationStatus;
 import org.apache.nifi.connectable.Connectable;
 import org.apache.nifi.connectable.Position;
@@ -1169,6 +1169,13 @@ public class VersionedFlowSynchronizer implements 
FlowSynchronizer {
             final List<VersionedConfigurationStep> activeFlowConfig = 
versionedConnector.getActiveFlowConfiguration();
             final List<VersionedConfigurationStep> workingFlowConfig = 
versionedConnector.getWorkingFlowConfiguration();
             connectorRepository.inheritConfiguration(connectorNode, 
activeFlowConfig, workingFlowConfig, versionedConnector.getBundle());
+
+            final ScheduledState desiredState = 
versionedConnector.getScheduledState();
+            if (desiredState == ScheduledState.RUNNING) {
+                connectorRepository.startConnector(connectorNode);
+            } else if (desiredState == ScheduledState.ENABLED) {
+                connectorRepository.stopConnector(connectorNode);
+            }
         } catch (final FlowUpdateException e) {
             throw new RuntimeException(connectorNode + " failed to inherit 
configuration", e);
         }
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/connectors/ConnectorCrudIT.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/connectors/ConnectorCrudIT.java
index 78728935cc..fb616c6d4b 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/connectors/ConnectorCrudIT.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/connectors/ConnectorCrudIT.java
@@ -18,6 +18,7 @@
 package org.apache.nifi.tests.system.connectors;
 
 import org.apache.nifi.components.ConfigVerificationResult.Outcome;
+import org.apache.nifi.components.connector.ConnectorState;
 import org.apache.nifi.tests.system.NiFiSystemIT;
 import org.apache.nifi.toolkit.client.NiFiClientException;
 import org.apache.nifi.web.api.dto.ConfigVerificationResultDTO;
@@ -67,6 +68,9 @@ public class ConnectorCrudIT extends NiFiSystemIT {
         final ConnectorEntity connectorAfterRestart = 
getNifiClient().getConnectorClient().getConnector(connector.getId());
         assertNotNull(connectorAfterRestart);
 
+        final String connectorState = 
connectorAfterRestart.getComponent().getState();
+        assertEquals(ConnectorState.STOPPED.name(), connectorState);
+
         final ConnectorConfigurationDTO activeConfig = 
connectorAfterRestart.getComponent().getActiveConfiguration();
         final Map<String, ConnectorValueReferenceDTO> activeProperties = 
activeConfig.getConfigurationStepConfigurations().getFirst().getPropertyGroupConfigurations().getFirst().getPropertyValues();
         final String activeIgnoredProperty = activeProperties.get("Ignored 
Property").getValue();

Reply via email to