Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1278 5a778181c -> b2f42b83e


Refactored RemoteStep and RemoteStrategy again.

Decided to store the traversal Bytecode in the RemoteStep. Cloning the 
Traversal worked, but I guess would have been bad because RemoteStep needs 
access to the original Traversal object so that it can eventually inject remote 
side-effects in there.


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

Branch: refs/heads/TINKERPOP-1278
Commit: b2f42b83e9bec5d7f67250480df99c2bcb09e7d9
Parents: 5a77818
Author: Stephen Mallette <[email protected]>
Authored: Wed Jul 20 13:41:23 2016 -0400
Committer: Stephen Mallette <[email protected]>
Committed: Wed Jul 20 13:41:23 2016 -0400

----------------------------------------------------------------------
 .../gremlin/process/remote/traversal/step/map/RemoteStep.java   | 5 ++++-
 .../remote/traversal/strategy/decoration/RemoteStrategy.java    | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b2f42b83/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
index 651c11e..a8454ec 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
@@ -20,6 +20,7 @@ package 
org.apache.tinkerpop.gremlin.process.remote.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnectionException;
+import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
@@ -38,11 +39,13 @@ public final class RemoteStep<S, E> extends AbstractStep<S, 
E> {
 
     private transient RemoteConnection remoteConnection;
     private Iterator<Traverser.Admin<E>> remoteIterator;
+    private Bytecode bytecode;
 
     @SuppressWarnings("unchecked")
     public RemoteStep(final Traversal.Admin traversal, final RemoteConnection 
remoteConnection) {
         super(traversal);
         this.remoteConnection = remoteConnection;
+        this.bytecode = traversal.getBytecode();
     }
 
     @Override
@@ -56,7 +59,7 @@ public final class RemoteStep<S, E> extends AbstractStep<S, 
E> {
 
         if (null == this.remoteIterator) {
             try {
-                this.remoteIterator = 
this.remoteConnection.submit(this.traversal.getBytecode());
+                this.remoteIterator = 
this.remoteConnection.submit(this.bytecode);
             } catch (final RemoteConnectionException sce) {
                 throw new IllegalStateException(sce);
             }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b2f42b83/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
index 4c9e828..20f7e80 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/strategy/decoration/RemoteStrategy.java
@@ -87,7 +87,7 @@ public final class RemoteStrategy extends 
AbstractTraversalStrategy<TraversalStr
             throw new IllegalStateException("RemoteStrategy expects the 
RemoteGraph instance to have a RemoteConnection");
 
         // remote step wraps the traversal and emits the results from the 
remote connection
-        final RemoteStep<?, ?> remoteStep = new 
RemoteStep<>(traversal.clone(), remoteGraph.getConnection());
+        final RemoteStep<?, ?> remoteStep = new RemoteStep<>(traversal, 
remoteGraph.getConnection());
         TraversalHelper.removeAllSteps(traversal);
         traversal.addStep(remoteStep);
 

Reply via email to