TINKERPOP-1642 Fixed up some execution problems after rebase

The logic still doesn't seem quite right but at least the tests pass and a 
complete build is achieved. The issue is related to new stuff added in 
PathRetractionStrategy on TINKERPOP-1652.


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

Branch: refs/heads/TINKERPOP-1642
Commit: 0824625f4db8e0fdc483183faf8d505f3300b6b4
Parents: 3929a67
Author: Stephen Mallette <[email protected]>
Authored: Mon Mar 27 14:03:26 2017 -0400
Committer: Stephen Mallette <[email protected]>
Committed: Mon Mar 27 14:03:26 2017 -0400

----------------------------------------------------------------------
 .../strategy/optimization/PathRetractionStrategy.java       | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0824625f/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategy.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategy.java
index 443e4e3..10e2372 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategy.java
@@ -78,15 +78,20 @@ public final class PathRetractionStrategy extends 
AbstractTraversalStrategy<Trav
         // do not apply this strategy if a VertexProgramStep is present with 
LABELED_PATH requirements
         if ((traversal.getParent() instanceof EmptyStep || 
traversal.getParent() instanceof VertexProgramStep) &&
                 TraversalHelper.anyStepRecursively(step -> step instanceof 
LambdaHolder ||
-                                                   
step.getRequirements().contains(TraverserRequirement.PATH) ||
-                                                   (step instanceof 
VertexProgramStep && 
step.getRequirements().contains(TraverserRequirement.LABELED_PATH)),traversal))
+                                                   
step.getRequirements().contains(TraverserRequirement.PATH),traversal)) {
             TraversalHelper.applyTraversalRecursively(t -> 
t.getEndStep().addLabel(MARKER), traversal);
+        }
 
         if (traversal.getEndStep().getLabels().contains(MARKER)) {
             traversal.getEndStep().removeLabel(MARKER);
             return;
         }
 
+        if (TraversalHelper.anyStepRecursively(step -> step instanceof 
VertexProgramStep && 
step.getRequirements().contains(TraverserRequirement.LABELED_PATH),
+                TraversalHelper.getRootTraversal(traversal))) {
+            return;
+        }
+
         final boolean onGraphComputer = 
TraversalHelper.onGraphComputer(traversal);
         final Set<String> foundLabels = new HashSet<>();
         final Set<String> keepLabels = new HashSet<>();

Reply via email to