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 2017/11/28 03:16:31 UTC

tinkerpop git commit: if it is an .iterate(), GremlinServer needs to make sure that the traversal side-effects are added to the cache for retrieval.

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1834 2a957bb58 -> f40187497


if it is an .iterate(), GremlinServer needs to make sure that the traversal side-effects are added to the cache for retrieval.


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

Branch: refs/heads/TINKERPOP-1834
Commit: f401874976ebdad697f90f04396be02a906e965b
Parents: 2a957bb
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Mon Nov 27 19:16:27 2017 -0800
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Mon Nov 27 19:16:27 2017 -0800

----------------------------------------------------------------------
 .../gremlin/server/op/traversal/TraversalOpProcessor.java      | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f4018749/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
index b9705a6..1c0402f 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
@@ -480,12 +480,16 @@ public class TraversalOpProcessor extends AbstractOpProcessor {
         final boolean useBinary = ctx.channel().attr(StateKey.USE_BINARY).get();
         boolean warnOnce = false;
 
-
         // we have an empty iterator - happens on stuff like: g.V().iterate()
         if (!itty.hasNext()) {
             // as there is nothing left to iterate if we are transaction managed then we should execute a
             // commit here before we send back a NO_CONTENT which implies success
             onTraversalSuccess(graph, context);
+            // if it was a g.V().iterate(), then be sure to add the side-effects to the cache
+            if (itty instanceof TraverserIterator &&
+                    !((TraverserIterator)itty).getTraversal().getSideEffects().isEmpty()) {
+                cache.put(msg.getRequestId(), ((TraverserIterator)itty).getTraversal().getSideEffects());
+            }
             ctx.writeAndFlush(ResponseMessage.build(msg)
                     .code(ResponseStatusCode.NO_CONTENT)
                     .create());