TINKERPOP-1044: Standardized Message Format and Added Extra HTTP Header for the exception class instead of making a message with multiple lines
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/3202db1b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/3202db1b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/3202db1b Branch: refs/heads/master Commit: 3202db1b14f80d09f95bbb692844e9f91f66b925 Parents: de9bbda Author: Vivek Krishnan <[email protected]> Authored: Wed Sep 28 11:06:14 2016 -0700 Committer: Vivek Krishnan <[email protected]> Committed: Wed Sep 28 11:06:14 2016 -0700 ---------------------------------------------------------------------- .../handler/HttpGremlinEndpointHandler.java | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3202db1b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java ---------------------------------------------------------------------- diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java index a30c30e..96861bb 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java @@ -254,18 +254,9 @@ public class HttpGremlinEndpointHandler extends ChannelInboundHandlerAdapter { evalFuture.exceptionally(t -> { - if (t.getMessage() != null) { - sendError(ctx, INTERNAL_SERVER_ERROR, - String.format("Error encountered evaluating script: %s\nExecution Interrupted by %s\nMessage: %s", - requestArguments.getValue0(), t.getClass().getName(), t.getMessage()), - Optional.of(t)); - } else { - sendError(ctx, INTERNAL_SERVER_ERROR, - String.format("Error encountered evaluating script: %s\nExecution Interrupted by %s", - requestArguments.getValue0(), t.getClass().getName()), - Optional.of(t)); - } - + String errorMessage = (t.getMessage() != null) ? t.getMessage() : + String.format("Error encountered evaluating script: %s", requestArguments.getValue0()); + sendError(ctx, INTERNAL_SERVER_ERROR, errorMessage, Optional.of(t)); promise.setFailure(t); return null; }); @@ -465,6 +456,11 @@ public class HttpGremlinEndpointHandler extends ChannelInboundHandlerAdapter { errorMeter.mark(); final ObjectNode node = mapper.createObjectNode(); node.put("message", message); + if (t.isPresent()){ + node.put("Exception-Class", t.get().getClass().getName()); + } + + final FullHttpResponse response = new DefaultFullHttpResponse( HTTP_1_1, status, Unpooled.copiedBuffer(node.toString(), CharsetUtil.UTF_8)); response.headers().set(CONTENT_TYPE, "application/json");
