You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apex.apache.org by da...@apache.org on 2016/03/22 22:24:57 UTC
incubator-apex-core git commit: APEXCORE-326: Bug fix. Added unit
test.
Repository: incubator-apex-core
Updated Branches:
refs/heads/release-3.3 ef1caa4d4 -> 5bdb3440b
APEXCORE-326: Bug fix. Added unit test.
Project: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/commit/5bdb3440
Tree: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/tree/5bdb3440
Diff: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/diff/5bdb3440
Branch: refs/heads/release-3.3
Commit: 5bdb3440b0f78c6365352433bd6b76d4b2a95587
Parents: ef1caa4
Author: bhupesh <bh...@gmail.com>
Authored: Sat Mar 19 14:52:36 2016 +0530
Committer: David Yan <da...@datatorrent.com>
Committed: Tue Mar 22 14:24:47 2016 -0700
----------------------------------------------------------------------
.../stram/plan/logical/LogicalPlan.java | 4 ++--
.../stram/plan/logical/DelayOperatorTest.java | 19 +++++++++++++++++++
2 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-apex-core/blob/5bdb3440/engine/src/main/java/com/datatorrent/stram/plan/logical/LogicalPlan.java
----------------------------------------------------------------------
diff --git a/engine/src/main/java/com/datatorrent/stram/plan/logical/LogicalPlan.java b/engine/src/main/java/com/datatorrent/stram/plan/logical/LogicalPlan.java
index 8fa71bb..3825505 100644
--- a/engine/src/main/java/com/datatorrent/stram/plan/logical/LogicalPlan.java
+++ b/engine/src/main/java/com/datatorrent/stram/plan/logical/LogicalPlan.java
@@ -1952,8 +1952,8 @@ public class LogicalPlan implements Serializable, DAG
else if (ctx.stack.contains(successor)) {
om.lowlink = Math.min(om.lowlink, successor.nindex);
boolean isDelayLoop = false;
- for (int i=ctx.path.size(); i>0; i--) {
- OperatorMeta om2 = ctx.path.get(i-1);
+ for (int i=ctx.stack.size(); i>0; i--) {
+ OperatorMeta om2 = ctx.stack.get(i-1);
if (om2.getOperator() instanceof Operator.DelayOperator) {
isDelayLoop = true;
}
http://git-wip-us.apache.org/repos/asf/incubator-apex-core/blob/5bdb3440/engine/src/test/java/com/datatorrent/stram/plan/logical/DelayOperatorTest.java
----------------------------------------------------------------------
diff --git a/engine/src/test/java/com/datatorrent/stram/plan/logical/DelayOperatorTest.java b/engine/src/test/java/com/datatorrent/stram/plan/logical/DelayOperatorTest.java
index 0bcc791..20f032c 100644
--- a/engine/src/test/java/com/datatorrent/stram/plan/logical/DelayOperatorTest.java
+++ b/engine/src/test/java/com/datatorrent/stram/plan/logical/DelayOperatorTest.java
@@ -454,4 +454,23 @@ public class DelayOperatorTest
}
+ @Test
+ public void testValidationWithMultipleStreamLoops()
+ {
+ LogicalPlan dag = StramTestSupport.createDAG(testMeta);
+
+ TestGeneratorInputOperator source = dag.addOperator("A", TestGeneratorInputOperator.class);
+ GenericTestOperator op1 = dag.addOperator("Op1", GenericTestOperator.class);
+ GenericTestOperator op2 = dag.addOperator("Op2", GenericTestOperator.class);
+ DefaultDelayOperator<Object> delay = dag.addOperator("Delay", DefaultDelayOperator.class);
+
+ dag.addStream("Source", source.outport, op1.inport1);
+ dag.addStream("Stream1", op1.outport1, op2.inport1);
+ dag.addStream("Stream2", op1.outport2, op2.inport2);
+ dag.addStream("Op to Delay", op2.outport1, delay.input);
+ dag.addStream("Delay to Op", delay.output, op1.inport2);
+
+ dag.validate();
+ }
+
}