[
https://issues.apache.org/jira/browse/OOZIE-1403?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Kanter updated OOZIE-1403:
---------------------------------
Attachment: OOZIE-1403.patch
As I was looking at it more, the main issue is that the forkjoin checking code
was making sure that we only transition to an action once; which normally
shouldn't be allowed. Because of the decision node, this was happening, but in
this case we do want to allow it.
The patch makes the forkjoin checking code more complicated to take into
account a node's decision node ancestor. (I also put a giant comment
explaining what its doing because its kinda hard to follow the code).
In addition to the unit tests, I also tried out some workflows.
> forkjoin validation blocks some valid cases involving decision nodes
> --------------------------------------------------------------------
>
> Key: OOZIE-1403
> URL: https://issues.apache.org/jira/browse/OOZIE-1403
> Project: Oozie
> Issue Type: Bug
> Affects Versions: 3.3.2
> Reporter: Robert Kanter
> Assignee: Robert Kanter
> Fix For: trunk
>
> Attachments: OOZIE-1403.patch
>
>
> As described
> [here|https://issues.apache.org/jira/browse/OOZIE-1035?focusedCommentId=13676534&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13676534]
> in OOZIE-1035, the new forkjoin checker code is blocking some valid cases
> involving decision nodes where the decision nodes are inside the forkjoin;
> when they are outside, its not a problem.
> 1) This uses a decision node to "insert" an action based on {{foo}}:
> {noformat}
> <fork>
> <goto decision>
> <goto join>
> </fork>
> <decision>
> <if foo, goto A>
> <else, goto B>
> </decision>
> <action A>
> <ok to="B">
> </action A>
> <action B>
> <ok to="join">
> </action B>
> <join>
> {noformat}
> 2) This uses a decision node to "replace" an action based on {{foo}}:
> {noformat}
> <fork>
> <goto decision>
> <goto join>
> </fork>
> <decision>
> <if foo, goto A>
> <else, goto B>
> </decision>
> <action A>
> <ok to="join">
> </action A>
> <action B>
> <ok to="join">
> </action B>
> <join>
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira