NIFI-250:
- Handling the appropriate type of exception when creating a controller service.

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

Branch: refs/heads/NIFI-250
Commit: fe24f368e8e317400d77491e904de6f76639fd53
Parents: 4f01cd0
Author: Matt Gilman <[email protected]>
Authored: Thu Mar 26 07:04:51 2015 -0400
Committer: Matt Gilman <[email protected]>
Committed: Thu Mar 26 07:04:51 2015 -0400

----------------------------------------------------------------------
 .../dao/impl/StandardControllerServiceDAO.java  | 26 ++++++++++++--------
 1 file changed, 16 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/fe24f368/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 f12f690..14217c5 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
@@ -21,12 +21,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import org.apache.nifi.controller.ScheduledState;
+import 
org.apache.nifi.controller.exception.ControllerServiceInstantiationException;
 
 import org.apache.nifi.controller.exception.ValidationException;
 import org.apache.nifi.controller.service.ControllerServiceNode;
 import org.apache.nifi.controller.service.ControllerServiceProvider;
 import org.apache.nifi.controller.service.ControllerServiceReference;
 import org.apache.nifi.controller.service.ControllerServiceState;
+import org.apache.nifi.web.NiFiCoreException;
 import org.apache.nifi.web.ResourceNotFoundException;
 import org.apache.nifi.web.api.dto.ControllerServiceDTO;
 import org.apache.nifi.web.dao.ControllerServiceDAO;
@@ -66,16 +68,20 @@ public class StandardControllerServiceDAO extends 
ComponentDAO implements Contro
             throw new IllegalArgumentException("The controller service type 
must be specified.");
         }
         
-        // create the controller service
-        final ControllerServiceNode controllerService = 
serviceProvider.createControllerService(controllerServiceDTO.getType(), 
controllerServiceDTO.getId(), true);
-        
-        // ensure we can perform the update 
-        verifyUpdate(controllerService, controllerServiceDTO);
-        
-        // perform the update
-        configureControllerService(controllerService, controllerServiceDTO);
-        
-        return controllerService;
+        try {
+            // create the controller service
+            final ControllerServiceNode controllerService = 
serviceProvider.createControllerService(controllerServiceDTO.getType(), 
controllerServiceDTO.getId(), true);
+
+            // ensure we can perform the update 
+            verifyUpdate(controllerService, controllerServiceDTO);
+
+            // perform the update
+            configureControllerService(controllerService, 
controllerServiceDTO);
+
+            return controllerService;
+        } catch (final ControllerServiceInstantiationException csie) {
+            throw new NiFiCoreException(csie.getMessage(), csie);
+        }
     }
 
     /**

Reply via email to