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