Repository: tinkerpop
Updated Branches:
  refs/heads/master 4184807be -> 0ba34be72


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/master
Commit: e59124e7e82352cca60a5dd8ef2ab7c9c75198ee
Parents: 672c8aa
Author: Ted Wilmes <twil...@gmail.com>
Authored: Thu Jul 13 11:59:17 2017 -0500
Committer: Ted Wilmes <twil...@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

Reply via email to