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);

Reply via email to