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()); + } } }