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/09/30 21:33:58 UTC

[1/2] incubator-tinkerpop git commit: fixed clone() (thus, threading) bugs in GroupCountStep, GroupStep, and TreeStep.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 88b23bea8 -> c149ced2b


fixed clone() (thus, threading) bugs in GroupCountStep, GroupStep, and TreeStep.


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

Branch: refs/heads/master
Commit: c087fbcc8fb2530ffba0f2d365785dfadc27bed4
Parents: 77f374d
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Sep 30 13:25:39 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Sep 30 13:25:39 2015 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  2 +-
 .../traversal/step/map/GroupCountStep.java      | 20 ++++++++++++------
 .../process/traversal/step/map/GroupStep.java   | 22 +++++++++++++-------
 .../process/traversal/step/map/TreeStep.java    | 14 +++++++------
 4 files changed, 38 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c087fbcc/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 3ae1142..d0df1f2 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -25,7 +25,7 @@ image::https://raw.githubusercontent.com/apache/incubator-tinkerpop/master/docs/
 TinkerPop 3.0.2 (NOT OFFICIALLY RELEASED YET)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-* Fixed a `clone()` bug in `RepeatStep` and `TraversalRing`.
+* Fixed a `clone()` bug in `RepeatStep`, `TreeStep`, `GroupCountStep`, `GroupStep`, and `TraversalRing`.
 * Fixed a thread context bug in `TinkerGraphComputer`.
 * Improved session closing for transactional graphs during shutdown of Gremlin Server.
 * Fixed id parameter used in tests for `GroovyStoreTest` and `GroovyRepeatTest` to not be treated as an embedded string.

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c087fbcc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java
index bfd1e34..7f3904e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupCountStep.java
@@ -36,7 +36,12 @@ import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 import org.apache.tinkerpop.gremlin.util.function.HashMapSupplier;
 
 import java.io.Serializable;
-import java.util.*;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.function.BiFunction;
 
 /**
@@ -49,7 +54,7 @@ public final class GroupCountStep<S, E> extends ReducingBarrierStep<S, Map<E, Lo
     public GroupCountStep(final Traversal.Admin traversal) {
         super(traversal);
         this.setSeedSupplier(HashMapSupplier.instance());
-        this.setBiFunction(new GroupCountBiFunction());
+        this.setBiFunction(new GroupCountBiFunction(this));
     }
 
 
@@ -78,6 +83,7 @@ public final class GroupCountStep<S, E> extends ReducingBarrierStep<S, Map<E, Lo
         final GroupCountStep<S, E> clone = (GroupCountStep<S, E>) super.clone();
         if (null != this.groupTraversal)
             clone.groupTraversal = clone.integrateChild(this.groupTraversal.clone());
+        clone.setBiFunction(new GroupCountBiFunction<>(clone));
         return clone;
     }
 
@@ -107,15 +113,18 @@ public final class GroupCountStep<S, E> extends ReducingBarrierStep<S, Map<E, Lo
 
     ///////////
 
-    private class GroupCountBiFunction implements BiFunction<Map<E, Long>, Traverser<S>, Map<E, Long>>, Serializable {
+    private static class GroupCountBiFunction<S, E> implements BiFunction<Map<E, Long>, Traverser<S>, Map<E, Long>>, Serializable {
 
-        private GroupCountBiFunction() {
+        private final GroupCountStep<S, E> groupCountStep;
+
+        private GroupCountBiFunction(final GroupCountStep<S, E> groupCountStep) {
+            this.groupCountStep = groupCountStep;
 
         }
 
         @Override
         public Map<E, Long> apply(final Map<E, Long> mutatingSeed, final Traverser<S> traverser) {
-            MapHelper.incr(mutatingSeed, TraversalUtil.applyNullable(traverser.asAdmin(), GroupCountStep.this.groupTraversal), traverser.bulk());
+            MapHelper.incr(mutatingSeed, TraversalUtil.applyNullable(traverser.asAdmin(), this.groupCountStep.groupTraversal), traverser.bulk());
             return mutatingSeed;
         }
     }
@@ -170,5 +179,4 @@ public final class GroupCountStep<S, E> extends ReducingBarrierStep<S, Map<E, Lo
             return INSTANCE;
         }
     }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c087fbcc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java
index 558c9ae..5dc54c6 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java
@@ -39,7 +39,13 @@ import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 
 import java.io.Serializable;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.function.BiFunction;
 import java.util.function.Supplier;
 
@@ -57,7 +63,7 @@ public final class GroupStep<S, K, V, R> extends ReducingBarrierStep<S, Map<K, R
     public GroupStep(final Traversal.Admin traversal) {
         super(traversal);
         this.setSeedSupplier((Supplier) new GroupMapSupplier());
-        this.setBiFunction((BiFunction) new GroupBiFunction());
+        this.setBiFunction(new GroupBiFunction(this));
     }
 
     @Override
@@ -106,6 +112,7 @@ public final class GroupStep<S, K, V, R> extends ReducingBarrierStep<S, Map<K, R
             clone.valueTraversal = clone.integrateChild(this.valueTraversal.clone());
         if (null != this.reduceTraversal)
             clone.reduceTraversal = clone.integrateChild(this.reduceTraversal.clone());
+        clone.setBiFunction(new GroupBiFunction<>((GroupStep) clone));
         return clone;
     }
 
@@ -141,16 +148,18 @@ public final class GroupStep<S, K, V, R> extends ReducingBarrierStep<S, Map<K, R
 
     ///////////
 
-    private class GroupBiFunction implements BiFunction<Map<K, Collection<V>>, Traverser.Admin<S>, Map<K, Collection<V>>>, Serializable {
+    private static class GroupBiFunction<S, K, V> implements BiFunction<Map<K, Collection<V>>, Traverser.Admin<S>, Map<K, Collection<V>>>, Serializable {
 
-        private GroupBiFunction() {
+        private final GroupStep<S, K, V, ?> groupStep;
 
+        private GroupBiFunction(final GroupStep<S, K, V, ?> groupStep) {
+            this.groupStep = groupStep;
         }
 
         @Override
         public Map<K, Collection<V>> apply(final Map<K, Collection<V>> mutatingSeed, final Traverser.Admin<S> traverser) {
-            final K key = TraversalUtil.applyNullable(traverser, GroupStep.this.keyTraversal);
-            final V value = TraversalUtil.applyNullable(traverser, GroupStep.this.valueTraversal);
+            final K key = TraversalUtil.applyNullable(traverser, this.groupStep.keyTraversal);
+            final V value = TraversalUtil.applyNullable(traverser, this.groupStep.valueTraversal);
             Collection<V> values = mutatingSeed.get(key);
             if (null == values) {
                 values = new BulkSet<>();
@@ -273,5 +282,4 @@ public final class GroupStep<S, K, V, R> extends ReducingBarrierStep<S, Map<K, R
             return StringFactory.mapReduceString(this, this.getMemoryKey());
         }
     }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c087fbcc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java
index c987ffb..3de0a9d 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TreeStep.java
@@ -55,7 +55,7 @@ public final class TreeStep<S> extends ReducingBarrierStep<S, Tree> implements M
     public TreeStep(final Traversal.Admin traversal) {
         super(traversal);
         this.setSeedSupplier((Supplier) TreeSupplier.instance());
-        this.setBiFunction(new TreeBiFunction());
+        this.setBiFunction(new TreeBiFunction(this));
     }
 
 
@@ -84,6 +84,7 @@ public final class TreeStep<S> extends ReducingBarrierStep<S, Tree> implements M
         final TreeStep<S> clone = (TreeStep<S>) super.clone();
         clone.traversalRing = this.traversalRing.clone();
         clone.getLocalChildren().forEach(clone::integrateChild);
+        clone.setBiFunction(new TreeBiFunction<>(clone));
         return clone;
     }
 
@@ -115,10 +116,12 @@ public final class TreeStep<S> extends ReducingBarrierStep<S, Tree> implements M
 
     ///////////
 
-    private class TreeBiFunction implements BiFunction<Tree, Traverser<S>, Tree>, Serializable {
+    private static class TreeBiFunction<S> implements BiFunction<Tree, Traverser<S>, Tree>, Serializable {
 
-        private TreeBiFunction() {
+        private final TreeStep<S> treeStep;
 
+        private TreeBiFunction(final TreeStep<S> treeStep) {
+            this.treeStep = treeStep;
         }
 
         @Override
@@ -126,12 +129,12 @@ public final class TreeStep<S> extends ReducingBarrierStep<S, Tree> implements M
             Tree depth = mutatingSeed;
             final Path path = traverser.path();
             for (int i = 0; i < path.size(); i++) {
-                final Object object = TraversalUtil.apply(path.<Object>get(i), TreeStep.this.traversalRing.next());
+                final Object object = TraversalUtil.apply(path.<Object>get(i), this.treeStep.traversalRing.next());
                 if (!depth.containsKey(object))
                     depth.put(object, new Tree<>());
                 depth = (Tree) depth.get(object);
             }
-            TreeStep.this.traversalRing.reset();
+            this.treeStep.traversalRing.reset();
             return mutatingSeed;
         }
     }
@@ -182,5 +185,4 @@ public final class TreeStep<S> extends ReducingBarrierStep<S, Tree> implements M
             return INSTANCE;
         }
     }
-
 }
\ No newline at end of file


[2/2] incubator-tinkerpop git commit: Merge branch 'tp30'

Posted by ok...@apache.org.
Merge branch 'tp30'


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

Branch: refs/heads/master
Commit: c149ced2bbec04e4920d4e3169c6e0991c146082
Parents: 88b23be c087fbc
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Sep 30 13:33:08 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Sep 30 13:33:08 2015 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  2 +-
 .../traversal/step/map/GroupCountStep.java      | 20 ++++++++++++------
 .../process/traversal/step/map/GroupStep.java   | 22 +++++++++++++-------
 .../process/traversal/step/map/TreeStep.java    | 14 +++++++------
 4 files changed, 38 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c149ced2/CHANGELOG.asciidoc
----------------------------------------------------------------------