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());