All barriers are considered except NoOpBarriers as they are optimization barriers whose semantics should not effect local/global computability issues.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a822ee2d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a822ee2d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a822ee2d Branch: refs/heads/TINKERPOP-1756 Commit: a822ee2d34b4ea12589075645c158c7e66f4cbd4 Parents: 04b61d5 Author: Marko A. Rodriguez <[email protected]> Authored: Wed Aug 30 08:51:49 2017 -0600 Committer: Marko A. Rodriguez <[email protected]> Committed: Wed Aug 30 08:51:49 2017 -0600 ---------------------------------------------------------------------- .../tinkerpop/gremlin/process/traversal/step/map/MatchStep.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a822ee2d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java index e74b8d1..3df9da2 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java @@ -154,7 +154,8 @@ public final class MatchStep<S, E> extends ComputerAwareStep<S, Map<String, E>> matchTraversal.asAdmin().addStep(matchEndStep); // this turns barrier computations into locally computable traversals - if (TraversalHelper.hasStepOfAssignableClass(Barrier.class, matchTraversal)) { + if (TraversalHelper.getStepsOfAssignableClass(Barrier.class, matchTraversal).stream(). + filter(s -> !(s instanceof NoOpBarrierStep)).findAny().isPresent()) { // exclude NoOpBarrierSteps from the determination as they are optimization barriers final Traversal.Admin newTraversal = new DefaultTraversal<>(); TraversalHelper.removeToTraversal(matchTraversal.getStartStep().getNextStep(), matchTraversal.getEndStep(), newTraversal); TraversalHelper.insertAfterStep(new TraversalFlatMapStep<>(matchTraversal, newTraversal), matchTraversal.getStartStep(), matchTraversal);
