----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/3486/#review4635 -----------------------------------------------------------
a couple of minor comments, other than that looks good trunk/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java <https://reviews.apache.org/r/3486/#comment10307> all these changes from private to public seem unnecessary trunk/core/src/test/java/org/apache/oozie/service/TestLiteWorkflowAppService.java <https://reviews.apache.org/r/3486/#comment10308> several false changes in this file - Alejandro On 2012-01-26 22:42:27, Virag Kothari wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/3486/ > ----------------------------------------------------------- > > (Updated 2012-01-26 22:42:27) > > > Review request for oozie, Mohammad Islam and Angelo K. Huang. > > > 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 > ----- > > 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/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 > >
