----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/3486/ -----------------------------------------------------------
(Updated 2012-01-27 18:56:55.963437) Review request for oozie, Mohammad Islam and Angelo K. Huang. Changes ------- Adding a property in oozie-default to support backward compatibility of wf's without proper fork/join Integrating Alejandro's comments Summary ------- Validate fork and join at wf submission time https://issues.apache.org/jira/browse/OOZIE-636 Brief description of algo: A modified dfs algorithm is used. Two stacks, one for dfs traversal and other for maintaining fork join status, are kept. When a fork is encountered during traversal, it is added to the forkjoin stack and number of paths associated with the fork is also stored. When a node’s child is seen as a join, the join is added to the forkJoin stack and the no. of paths to it is updated. When the number of paths for fork and join are equal, then the fork/join pair is removed from the forkJoin stack and join is pushed to the dfsStack. Nodes other than fork and join are only pushed to the dfs stack. If a action node is seen, only the node's "ok-to" transition is considered While(!stack.isEmpty()){ Node n = DfsStack.pop() n.traversed = true; If(n.type==fork){ ForkJoinStack.push(new Element(n, n.paths) ); } List<Node> childs = getUnvisitedChildnodes(n) For(Node n: childs){ If (n.type==join){ Boolean b=isForkJoinCleared(ForkJoinStack) If(!b){ Continue; } stack.push(n); n.traversed = true; } } This addresses bug OOZIE-636. https://issues.apache.org/jira/browse/OOZIE-636 Diffs (updated) ----- trunk/core/src/test/resources/wf-schema-valid.xml 1236413 trunk/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java 1236413 trunk/core/src/main/resources/oozie-default.xml 1236413 trunk/core/src/test/java/org/apache/oozie/service/TestLiteWorkflowAppService.java 1236413 trunk/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java 1236413 trunk/core/src/main/java/org/apache/oozie/ErrorCode.java 1236413 Diff: https://reviews.apache.org/r/3486/diff Testing ------- Test case to validate fork-join added Thanks, Virag
