[jira] [Commented] (OFBIZ-9981) Handle service response effectively

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (OFBIZ-9981) Handle service response effectively

Nicolas Malin (Jira)

    [ https://issues.apache.org/jira/browse/OFBIZ-9981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16307439#comment-16307439 ]

Jacques Le Roux commented on OFBIZ-9981:
----------------------------------------

BTW the pattern I suggest is used in ContentServices
{code}
            try {
                permResults = dispatcher.runSync("checkContentPermission", serviceInMap);
                if (ServiceUtil.isError(permResults)) {
                    return ServiceUtil.returnError(ServiceUtil.getErrorMessage(permResults));
                }
            } catch (GenericServiceException e) {
                Debug.logError(e, "Problem checking permissions", "ContentServices");
                return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ContentPermissionNotGranted", locale));
            }
{code}
Sometimes with a failure variant, I'm not sure why. We really need to discuss and take generic decisions. Then always use them but with a grain of salt, since in some, hopefully rare cases, the patterns will not automatically apply.
{code}
        try {
            Map<String, Object> thisResults = dispatcher.runSync("traverseContent", traversMap);
            if (ServiceUtil.isError(thisResults)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(thisResults));
            }
            Map<String, Object> nodeMap = UtilGenerics.checkMap(thisResults.get("nodeMap"));
            walkParentTree(nodeMap, parentList);
        } catch (GenericServiceException e) {
            return ServiceUtil.returnFailure(e.getMessage());
        }
{code}

> Handle service response effectively
> -----------------------------------
>
>                 Key: OFBIZ-9981
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-9981
>             Project: OFBiz
>          Issue Type: Improvement
>            Reporter: Suraj Khurana
>            Assignee: Jacques Le Roux
>         Attachments: OFBIZ-9981-MAR-SECEXT-WE.patch, OFBIZ-9981-content.patch, OFBIZ-9981-manufacturing.patch, OFBIZ-9981-order.patch, OFBIZ-9981-party.patch, OFBIZ-9981-plugins.patch, OFBIZ-9981-product.patch, OFBIZ-9981.patch
>
>
> [As per discussion on Dev ML|http://markmail.org/message/dfriai337uxlx5mo]:
> ==========================
> Every service calling from java/groovy must handle errors by service util methods such as isError, reutrnError etc. and similarly in case of XML <call-service, there should be <check-error/> to make sure service was executed successfully.
> Apart from this, one suggestion is to include *Debug.logError* in *_ServiceUtil.returnProblem_* so that in case of any error occurred and handled, it will always be logged on the console.
> ==========================



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)