You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by tw...@apache.org on 2017/07/13 16:59:26 UTC

tinkerpop git commit: Deep copy bytecode when cloning traversals.

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1727 [created] e59124e7e


Deep copy bytecode when cloning traversals.


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

Branch: refs/heads/TINKERPOP-1727
Commit: e59124e7e82352cca60a5dd8ef2ab7c9c75198ee
Parents: 672c8aa
Author: Ted Wilmes <tw...@gmail.com>
Authored: Thu Jul 13 11:59:17 2017 -0500
Committer: Ted Wilmes <tw...@gmail.com>
Committed: Thu Jul 13 11:59:17 2017 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                                                | 1 +
 .../gremlin/process/traversal/util/DefaultTraversal.java          | 3 ++-
 .../gremlin/process/traversal/util/DefaultTraversalTest.java      | 2 ++
 3 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e59124e7/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 7d491b6..9f2c97a 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -40,6 +40,7 @@ This release also includes changes from <<release-3-1-8, 3.1.8>>.
 * Improved GraphSON serialization performance around `VertexProperty`.
 * Changed some tests in `EventStrategyProcessTest` which were enforcing some unintended semantics around transaction state.
 * Added WsAndHttpChannelizer and SaslAndHttpBasicAuthenticationHandler to be allow for servicing Http and Websocket requests to the same server
+* Added deep copy of `Bytecode` to `DefaultTraversal.clone()`.
 
 [[release-3-2-5]]
 TinkerPop 3.2.5 (Release Date: June 12, 2017)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e59124e7/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
index 5a65006..b2c9a35 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
@@ -62,7 +62,7 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
     protected transient TraverserGenerator generator;
     protected Set<TraverserRequirement> requirements;
     protected boolean locked = false;
-    protected final Bytecode bytecode; // TODO: perhaps make transient until 3.3.0?
+    protected Bytecode bytecode; // TODO: perhaps make transient until 3.3.0?
 
 
     private DefaultTraversal(final Graph graph, final TraversalStrategies traversalStrategies, final Bytecode bytecode) {
@@ -247,6 +247,7 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
             clone.unmodifiableSteps = Collections.unmodifiableList(clone.steps);
             clone.sideEffects = this.sideEffects.clone();
             clone.strategies = this.strategies;
+            clone.bytecode = this.bytecode.clone();
             for (final Step<?, ?> step : this.steps) {
                 final Step<?, ?> clonedStep = step.clone();
                 clonedStep.setTraversal(clone);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e59124e7/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalTest.java
index 6f6a6c6..8912b0c 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalTest.java
@@ -48,6 +48,7 @@ import static org.hamcrest.number.OrderingComparison.lessThan;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -102,6 +103,7 @@ public class DefaultTraversalTest {
         clone.getSideEffects().set("m", 2);
         assertEquals(1, original.getSideEffects().<Integer>get("m").intValue());
         assertEquals(2, clone.getSideEffects().<Integer>get("m").intValue());
+        assertNotSame(original.bytecode, clone.bytecode);
     }
 
     @Test