You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2016/07/11 19:51:20 UTC

[03/22] tinkerpop git commit: found a bug in TraversalVertexProgramStep where it was not respecting the traversals registered strategies.

found a bug in TraversalVertexProgramStep where it was not respecting the traversals registered strategies.


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

Branch: refs/heads/master
Commit: ba37407dca9970679c31d0cbd6bd9f13ebd57cc3
Parents: f9c6ea6
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri Jul 8 13:13:14 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri Jul 8 13:13:14 2016 -0600

----------------------------------------------------------------------
 .../traversal/step/map/TraversalVertexProgramStep.java    | 10 ++++++++--
 .../strategy/optimization/PrunePathStrategy.java          |  2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ba37407d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/TraversalVertexProgramStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/TraversalVertexProgramStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/TraversalVertexProgramStep.java
index 0eee43a..cb7db29 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/TraversalVertexProgramStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/TraversalVertexProgramStep.java
@@ -26,6 +26,7 @@ import org.apache.tinkerpop.gremlin.process.computer.traversal.MemoryTraversalSi
 import org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexProgram;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
+import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 import org.apache.tinkerpop.gremlin.process.traversal.util.PureTraversal;
@@ -66,8 +67,13 @@ public final class TraversalVertexProgramStep extends VertexProgramStep implemen
     @Override
     public TraversalVertexProgram generateProgram(final Graph graph, final Memory memory) {
         final Traversal.Admin<?, ?> computerSpecificTraversal = this.computerTraversal.getPure();
-        computerSpecificTraversal.setStrategies(TraversalStrategies.GlobalCache.getStrategies(graph.getClass()).clone());
-        this.getTraversal().getStrategies().toList().forEach(computerSpecificTraversal.getStrategies()::addStrategies);
+        final TraversalStrategies computerSpecificStrategies = this.getTraversal().getStrategies().clone();
+        TraversalStrategies.GlobalCache.getStrategies(graph.getClass())
+                .toList()
+                .stream()
+                .filter(s -> s instanceof TraversalStrategy.ProviderOptimizationStrategy)
+                .forEach(computerSpecificStrategies::addStrategies);
+        computerSpecificTraversal.setStrategies(computerSpecificStrategies);
         computerSpecificTraversal.setSideEffects(new MemoryTraversalSideEffects(this.getTraversal().getSideEffects()));
         computerSpecificTraversal.setParent(this);
         final TraversalVertexProgram.Builder builder = TraversalVertexProgram.build().traversal(computerSpecificTraversal);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ba37407d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PrunePathStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PrunePathStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PrunePathStrategy.java
index e3d50bf..ff56c96 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PrunePathStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PrunePathStrategy.java
@@ -144,7 +144,7 @@ public final class PrunePathStrategy extends AbstractTraversalStrategy<Traversal
                 if (currentStep instanceof PathProcessor)
                     ((PathProcessor) currentStep).setKeepLabels(new HashSet<>(keepLabels));
             } else {
-                // if there is a PATh requiring step in the traversal, do not drop labels
+                // if there is a PATH requiring step in the traversal, do not drop labels
                 // set keep labels to null so that no labels are dropped
                 if (currentStep instanceof PathProcessor)
                     ((PathProcessor) currentStep).setKeepLabels(null);