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())); + } }
