You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Andras Salamon (JIRA)" <ji...@apache.org> on 2019/05/10 07:19:00 UTC

[jira] [Assigned] (OOZIE-3486) duplicate code in ControlNodeHandler

     [ https://issues.apache.org/jira/browse/OOZIE-3486?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andras Salamon reassigned OOZIE-3486:
-------------------------------------

    Assignee: Andras Salamon

> duplicate code in ControlNodeHandler
> ------------------------------------
>
>                 Key: OOZIE-3486
>                 URL: https://issues.apache.org/jira/browse/OOZIE-3486
>             Project: Oozie
>          Issue Type: Improvement
>    Affects Versions: trunk
>            Reporter: Andras Salamon
>            Assignee: Andras Salamon
>            Priority: Minor
>
> There are duplicate code blocks in ControlNodeHandler and JoinNodeDef classes.
> section of the {{enter}} method of {{ControlNodeHandler:}}
> {noformat}
>     ...
>     else if (nodeClass.equals(JoinNodeDef.class)) {
>             String parentExecutionPath = context.getParentExecutionPath(context.getExecutionPath());
>             String forkCount = context.getVar(FORK_COUNT_PREFIX + parentExecutionPath);
>             if (forkCount == null) {
>                 throw new WorkflowException(ErrorCode.E0720, context.getNodeDef().getName());
>             }
>             int count = Integer.parseInt(forkCount) - 1;
>             if (count > 0) {
>                 context.setVar(FORK_COUNT_PREFIX + parentExecutionPath, "" + count);
>                 context.deleteExecutionPath();
>             }
>             else {
>                 context.setVar(FORK_COUNT_PREFIX + parentExecutionPath, null);
>             }
>             LOG.debug("count = " + count + " for parent execution path " + parentExecutionPath);
>             doTouch = (count == 0);
>         }
>     ....{noformat}
> {{enter}} method of {{JoinNodeDef}}:
> {noformat}
> public boolean enter(Context context) throws WorkflowException {
>             String parentExecutionPath = context.getParentExecutionPath(context.getExecutionPath());
>             String forkCount = context.getVar(ControlNodeHandler.FORK_COUNT_PREFIX + parentExecutionPath);
>             if (forkCount == null) {
>                 throw new WorkflowException(ErrorCode.E0720, context.getNodeDef().getName());
>             }
>             int count = Integer.parseInt(forkCount) - 1;
>             if (count > 0) {
>                 context.setVar(ControlNodeHandler.FORK_COUNT_PREFIX + parentExecutionPath, "" + count);
>                 context.deleteExecutionPath();
>             }
>             else {
>                 context.setVar(ControlNodeHandler.FORK_COUNT_PREFIX + parentExecutionPath, null);
>             }
>             return (count == 0);
>         }
> {noformat}
> Similarly one section of {{loopDetection}} can be found in {{JoinNodeDef}}, one section of {{multiExit}} can be found in {{ForkNodeDef}}.
> We should eliminate the code duplication.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)