Repository: incubator-nifi
Updated Branches:
  refs/heads/NIFI-250 d122a8363 -> 40670067c


NIFI-250:
- Only handling new controller service state if it's actually different than 
the current value.

Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/52ea335d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/52ea335d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/52ea335d

Branch: refs/heads/NIFI-250
Commit: 52ea335d7c7e75b01f604a13c15f2b30c1b8df5c
Parents: 50f0c12
Author: Matt Gilman <[email protected]>
Authored: Fri Mar 13 11:07:31 2015 -0400
Committer: Matt Gilman <[email protected]>
Committed: Fri Mar 13 11:07:31 2015 -0400

----------------------------------------------------------------------
 .../dao/impl/StandardControllerServiceDAO.java  | 28 ++++++++++++--------
 1 file changed, 17 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/52ea335d/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java
 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java
index 38abf64..676c203 100644
--- 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java
+++ 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java
@@ -124,12 +124,15 @@ public class StandardControllerServiceDAO extends 
ComponentDAO implements Contro
 
         // enable or disable as appropriate
         if (isNotNull(controllerServiceDTO.getState())) {
-            final ControllerServiceState controllerServiceState = 
ControllerServiceState.valueOf(controllerServiceDTO.getState());
+            final ControllerServiceState purposedControllerServiceState = 
ControllerServiceState.valueOf(controllerServiceDTO.getState());
 
-            if (ControllerServiceState.ENABLED.equals(controllerServiceState)) 
{
-                serviceProvider.enableControllerService(controllerService);
-            } else if 
(ControllerServiceState.DISABLED.equals(controllerServiceState)) {
-                serviceProvider.disableControllerService(controllerService);
+            // only attempt an action if it is changing
+            if 
(!purposedControllerServiceState.equals(controllerService.getState())) {
+                if 
(ControllerServiceState.ENABLED.equals(purposedControllerServiceState)) {
+                    serviceProvider.enableControllerService(controllerService);
+                } else if 
(ControllerServiceState.DISABLED.equals(purposedControllerServiceState)) {
+                    
serviceProvider.disableControllerService(controllerService);
+                }
             }
         }
         
@@ -213,17 +216,20 @@ public class StandardControllerServiceDAO extends 
ComponentDAO implements Contro
         if (isNotNull(controllerServiceDTO.getState())) {
             try {
                 // attempt to parse the service state
-                final ControllerServiceState controllerServiceState = 
ControllerServiceState.valueOf(controllerServiceDTO.getState());
+                final ControllerServiceState purposedControllerServiceState = 
ControllerServiceState.valueOf(controllerServiceDTO.getState());
                 
                 // ensure the state is valid
-                if 
(ControllerServiceState.ENABLING.equals(controllerServiceState) || 
ControllerServiceState.DISABLING.equals(controllerServiceState)) {
+                if 
(ControllerServiceState.ENABLING.equals(purposedControllerServiceState) || 
ControllerServiceState.DISABLING.equals(purposedControllerServiceState)) {
                     throw new IllegalArgumentException();
                 }
                 
-                if 
(ControllerServiceState.ENABLED.equals(controllerServiceState)) {
-                    controllerService.verifyCanEnable();
-                } else if 
(ControllerServiceState.DISABLED.equals(controllerServiceState)) {
-                    controllerService.verifyCanDisable();
+                // only attempt an action if it is changing
+                if 
(!purposedControllerServiceState.equals(controllerService.getState())) {
+                    if 
(ControllerServiceState.ENABLED.equals(purposedControllerServiceState)) {
+                        controllerService.verifyCanEnable();
+                    } else if 
(ControllerServiceState.DISABLED.equals(purposedControllerServiceState)) {
+                        controllerService.verifyCanDisable();
+                    }
                 }
             } catch (IllegalArgumentException iae) {
                 throw new IllegalArgumentException("Controller Service state: 
Value must be one of [ENABLED, DISABLED]");

Reply via email to