Repository: syncope
Updated Branches:
  refs/heads/2_0_X 032d70e5d -> a9aae187d
  refs/heads/master a0ffad75e -> 750c789aa


[SYNCOPE-1045] Properly managing exceptions when updating workflow definition 
from Activiti Modeler


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

Branch: refs/heads/2_0_X
Commit: a9aae187d273707dd37e5053f0bf8a8df6dcb9b1
Parents: 032d70e
Author: Francesco Chicchiriccò <ilgro...@apache.org>
Authored: Tue Mar 14 09:20:06 2017 +0100
Committer: Francesco Chicchiriccò <ilgro...@apache.org>
Committed: Tue Mar 14 09:20:06 2017 +0100

----------------------------------------------------------------------
 .../resources/WorkflowDefPUTResource.java       | 24 +++++++++++++++-----
 1 file changed, 18 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/a9aae187/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
index 1446ee1..9eeab54 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
@@ -21,6 +21,7 @@ package org.apache.syncope.client.console.resources;
 import java.io.IOException;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
 import org.apache.cxf.common.util.UrlUtils;
 import org.apache.syncope.client.console.rest.WorkflowRestClient;
 import org.apache.wicket.request.resource.AbstractResource;
@@ -39,6 +40,8 @@ public class WorkflowDefPUTResource extends AbstractResource {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(WorkflowDefPUTResource.class);
 
+    private final WorkflowRestClient restClient = new WorkflowRestClient();
+
     @Override
     protected ResourceResponse newResourceResponse(final Attributes 
attributes) {
         String definition = null;
@@ -53,14 +56,23 @@ public class WorkflowDefPUTResource extends 
AbstractResource {
                 }
             }
         } catch (IOException e) {
-            LOG.error("Could not extract workflow definition from request", e);
+            LOG.error("Could not extract workflow definition", e);
+        }
+        if (definition == null) {
+            return new 
ResourceResponse().setStatusCode(Response.Status.BAD_REQUEST.getStatusCode()).
+                    setError(Response.Status.BAD_REQUEST.getStatusCode(),
+                            "Could not extract workflow definition");
         }
 
-        new 
WorkflowRestClient().updateDefinition(MediaType.APPLICATION_JSON_TYPE, 
definition);
-
-        ResourceResponse response = new ResourceResponse();
-        response.setStatusCode(204);
-        return response;
+        try {
+            restClient.updateDefinition(MediaType.APPLICATION_JSON_TYPE, 
definition);
+            return new 
ResourceResponse().setStatusCode(Response.Status.NO_CONTENT.getStatusCode());
+        } catch (Exception e) {
+            LOG.error("While updating workflow definition", e);
+            return new 
ResourceResponse().setStatusCode(Response.Status.BAD_REQUEST.getStatusCode()).
+                    setError(Response.Status.BAD_REQUEST.getStatusCode(),
+                            "While updating workflow definition: " + 
e.getMessage());
+        }
     }
 
 }

Reply via email to