CTR: Fixed a bug in `TraversalHelper.anyStepRecursively()`. Also added a test 
to ensure proper functionality.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bbd3ee58
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bbd3ee58
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bbd3ee58

Branch: refs/heads/TINKERPOP-1688
Commit: bbd3ee580fcd2d5d46c63340944245d2e9b2183f
Parents: 798e65d
Author: Daniel Kuppitz <[email protected]>
Authored: Thu Jun 15 19:19:52 2017 +0200
Committer: Daniel Kuppitz <[email protected]>
Committed: Thu Jun 15 19:19:52 2017 +0200

----------------------------------------------------------------------
 .../gremlin/process/traversal/util/TraversalHelper.java       | 4 +++-
 .../tinkerpop/gremlin/process/util/TraversalHelperTest.java   | 7 +++++++
 2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bbd3ee58/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
index de4e36f..fd803e4 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
@@ -427,7 +427,9 @@ public final class TraversalHelper {
                 return true;
             }
 
-            if (step instanceof TraversalParent) anyStepRecursively(predicate, 
((TraversalParent) step));
+            if (step instanceof TraversalParent && 
anyStepRecursively(predicate, ((TraversalParent) step))) {
+                return true;
+            }
         }
         return false;
     }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bbd3ee58/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/util/TraversalHelperTest.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/util/TraversalHelperTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/util/TraversalHelperTest.java
index 5245506..23eaa39 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/util/TraversalHelperTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/util/TraversalHelperTest.java
@@ -29,6 +29,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.branch.UnionStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.LambdaFilterStep;
+import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.PathFilterStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.TraversalFilterStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTraversalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapStep;
@@ -395,4 +396,10 @@ public class TraversalHelperTest {
         assertTrue(labels.contains("e"));
         assertTrue(labels.contains("f"));
     }
+
+    @Test
+    public void shouldFindStepsRecursively() {
+        final Traversal<?,?> traversal = __.V().repeat(__.out().simplePath());
+        assertTrue(TraversalHelper.anyStepRecursively(s -> s instanceof 
PathFilterStep, traversal.asAdmin()));
+    }
 }

Reply via email to