diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/GenTezUtils.java ql/src/java/org/apache/hadoop/hive/ql/parse/GenTezUtils.java index d64f983553..440a0071b2 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/GenTezUtils.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/GenTezUtils.java @@ -312,9 +312,8 @@ public static void removeUnionOperators(GenTezProcContext context, BaseWork work while(!operators.isEmpty()) { Operator current = operators.pop(); - seen.add(current); - if (current instanceof FileSinkOperator) { + if (current instanceof FileSinkOperator && !(seen.contains(current))) { FileSinkOperator fileSink = (FileSinkOperator)current; // remember it for additional processing later @@ -339,6 +338,8 @@ public static void removeUnionOperators(GenTezProcContext context, BaseWork work desc.setFilesToFetch(fileStatusesToFetch); } + seen.add(current); + if (current instanceof AppMasterEventOperator) { // remember for additional processing later context.eventOperatorSet.add((AppMasterEventOperator) current);