Added a bit of logging and error handling.

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

Branch: refs/heads/TINKERPOP-1278
Commit: 186f26ba08ca8ee2408003f98a1579bc999ccd36
Parents: 4191efc
Author: Stephen Mallette <[email protected]>
Authored: Fri Aug 26 10:53:13 2016 -0400
Committer: Stephen Mallette <[email protected]>
Committed: Fri Aug 26 10:53:13 2016 -0400

----------------------------------------------------------------------
 .../server/op/traversal/TraversalOpProcessor.java   | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/186f26ba/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 b44c51b..108d3fc 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
@@ -180,12 +180,10 @@ public class TraversalOpProcessor extends 
AbstractOpProcessor {
                     final Optional<UUID> sideEffect = 
msg.optionalArgs(Tokens.ARGS_SIDE_EFFECT);
                     final TraversalSideEffects sideEffects = 
cache.getIfPresent(sideEffect.get());
 
-                    if (null == sideEffects) {
-                        final String msgDefault = String.format("Could not 
find side-effects for %s.", sideEffect.get());
-                        throw new OpProcessorException(msgDefault, 
ResponseMessage.build(message).code(ResponseStatusCode.SERVER_ERROR).statusMessage(msgDefault).create());
-                    }
+                    if (null == sideEffects)
+                        logger.warn("Request for side-effect keys on %s 
returned no side-effects in the cache", sideEffect.get());
 
-                    handleIterator(context, sideEffects.keys().iterator());
+                    handleIterator(context, null == sideEffects ? 
Collections.emptyIterator() : sideEffects.keys().iterator());
                 };
 
                 break;
@@ -284,6 +282,14 @@ public class TraversalOpProcessor extends 
AbstractOpProcessor {
                             return;
                         }
 
+                        if (!sideEffects.exists(sideEffectKey.get())) {
+                            final String errorMessage = String.format("Could 
not find side-effect key for %s in %s.", sideEffectKey.get(), sideEffect.get());
+                            logger.warn(errorMessage);
+                            
ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR).statusMessage(errorMessage).create());
+                            onError(graph, context);
+                            return;
+                        }
+
                         handleIterator(context, new 
SideEffectIterator(sideEffects.get(sideEffectKey.get()), sideEffectKey.get()));
                     } catch (TimeoutException ex) {
                         final String errorMessage = String.format("Response 
iteration exceeded the configured threshold for request [%s] - %s", 
msg.getRequestId(), ex.getMessage());

Reply via email to