Github user markap14 commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/126#discussion_r44975323
  
    --- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java
 ---
    @@ -545,23 +546,16 @@ public void enableReferencingServices(final 
ControllerServiceNode serviceNode) {
         }
     
         private void enableReferencingServices(final ControllerServiceNode 
serviceNode, final List<ControllerServiceNode> recursiveReferences) {
    -        if (serviceNode.getState() != ControllerServiceState.ENABLED && 
serviceNode.getState() != ControllerServiceState.ENABLING) {
    +        if (serviceNode.getState() != ControllerServiceState.ENABLING && 
serviceNode.getState() != ControllerServiceState.ENABLED) {
                 serviceNode.verifyCanEnable(new 
HashSet<>(recursiveReferences));
             }
     
             final Set<ControllerServiceNode> ifEnabled = new HashSet<>();
    -        final List<ControllerServiceNode> toEnable = 
findRecursiveReferences(serviceNode, ControllerServiceNode.class);
    -        for (final ControllerServiceNode nodeToEnable : toEnable) {
    +        for (final ControllerServiceNode nodeToEnable : 
recursiveReferences) {
                 final ControllerServiceState state = nodeToEnable.getState();
    -            if (state != ControllerServiceState.ENABLED && state != 
ControllerServiceState.ENABLING) {
    +            if (state != ControllerServiceState.ENABLING && state != 
ControllerServiceState.ENABLED) {
                     nodeToEnable.verifyCanEnable(ifEnabled);
                     ifEnabled.add(nodeToEnable);
    -            }
    -        }
    -
    -        for (final ControllerServiceNode nodeToEnable : toEnable) {
    --- End diff --
    
    @olegz - I agree with all of the changes made except for this. Previously, 
we iterated over the list twice, because the first time we want to verify that 
all services can be enabled. If any service cannot be enabled, then we want to 
enable none of them (all or nothing). With the change here, we could enable a 
few services, and then find that the next service cannot be enabled and throw 
an Exception, having enabled just a few of them. 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to