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 2015/06/30 18:49:20 UTC
incubator-tinkerpop git commit: had a bad clone() implementation in
OrderGlobalStep and TraversalComparator.
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/master b5186e28a -> 626ed80ac
had a bad clone() implementation in OrderGlobalStep and TraversalComparator.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/626ed80a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/626ed80a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/626ed80a
Branch: refs/heads/master
Commit: 626ed80ac3bb739fb7d03ad5df6efee653579b36
Parents: b5186e2
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Jun 30 10:49:26 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Jun 30 10:49:26 2015 -0600
----------------------------------------------------------------------
.../traversal/step/map/OrderGlobalStep.java | 19 +++++++++++++++++--
.../traversal/step/util/TraversalComparator.java | 12 ++++++++----
2 files changed, 25 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/626ed80a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
index 829b912..55aaf6e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderGlobalStep.java
@@ -18,6 +18,7 @@
*/
package org.apache.tinkerpop.gremlin.process.traversal.step.map;
+import org.apache.tinkerpop.gremlin.process.traversal.Order;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
import org.apache.tinkerpop.gremlin.process.traversal.step.ComparatorHolder;
@@ -26,7 +27,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.util.CollectingBarrie
import org.apache.tinkerpop.gremlin.process.traversal.step.util.TraversalComparator;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet;
-import org.apache.tinkerpop.gremlin.process.traversal.Order;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
import org.apache.tinkerpop.gremlin.util.function.ChainedComparator;
@@ -43,7 +43,7 @@ import java.util.stream.Collectors;
*/
public final class OrderGlobalStep<S> extends CollectingBarrierStep<S> implements ComparatorHolder<S>, TraversalParent {
- private final List<Comparator<S>> comparators = new ArrayList<>();
+ private List<Comparator<S>> comparators = new ArrayList<>();
public OrderGlobalStep(final Traversal.Admin traversal) {
super(traversal);
@@ -98,6 +98,21 @@ public final class OrderGlobalStep<S> extends CollectingBarrierStep<S> implement
throw new UnsupportedOperationException("Use OrderGlobalStep.addComparator(" + TraversalComparator.class.getSimpleName() + ") to add a local child traversal:" + this);
}
+ @Override
+ public OrderGlobalStep<S> clone() {
+ final OrderGlobalStep<S> clone = (OrderGlobalStep<S>) super.clone();
+ clone.comparators = new ArrayList<>();
+ for (final Comparator<S> comparator : this.comparators) {
+ if (comparator instanceof TraversalComparator) {
+ final TraversalComparator<S, ?> clonedTraversalComparator = ((TraversalComparator<S, ?>) comparator).clone();
+ clone.integrateChild(clonedTraversalComparator.getTraversal());
+ clone.comparators.add(clonedTraversalComparator);
+ } else
+ clone.comparators.add(comparator);
+ }
+ return clone;
+ }
+
/////
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/626ed80a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java
index c5ec0e6..c2f1711 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/TraversalComparator.java
@@ -48,10 +48,14 @@ public final class TraversalComparator<S, E> implements Comparator<S>, Serializa
}
@Override
- public TraversalComparator clone() throws CloneNotSupportedException {
- final TraversalComparator clone = (TraversalComparator) super.clone();
- clone.traversal = this.traversal.clone();
- return clone;
+ public TraversalComparator clone() {
+ try {
+ final TraversalComparator clone = (TraversalComparator) super.clone();
+ clone.traversal = this.traversal.clone();
+ return clone;
+ } catch (final CloneNotSupportedException e) {
+ throw new IllegalStateException(e.getMessage(), e);
+ }
}
public Traversal.Admin<S, E> getTraversal() {