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