Skip to content

Commit 3202db1

Browse files
author
Vivek Krishnan
committed
TINKERPOP-1044: Standardized Message Format and Added Extra HTTP Header for the exception class instead of making a message with multiple lines
1 parent de9bbda commit 3202db1

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -254,18 +254,9 @@ public void channelRead(final ChannelHandlerContext ctx, final Object msg) {
254254

255255
evalFuture.exceptionally(t -> {
256256

257-
if (t.getMessage() != null) {
258-
sendError(ctx, INTERNAL_SERVER_ERROR,
259-
String.format("Error encountered evaluating script: %s\nExecution Interrupted by %s\nMessage: %s",
260-
requestArguments.getValue0(), t.getClass().getName(), t.getMessage()),
261-
Optional.of(t));
262-
} else {
263-
sendError(ctx, INTERNAL_SERVER_ERROR,
264-
String.format("Error encountered evaluating script: %s\nExecution Interrupted by %s",
265-
requestArguments.getValue0(), t.getClass().getName()),
266-
Optional.of(t));
267-
}
268-
257+
String errorMessage = (t.getMessage() != null) ? t.getMessage() :
258+
String.format("Error encountered evaluating script: %s", requestArguments.getValue0());
259+
sendError(ctx, INTERNAL_SERVER_ERROR, errorMessage, Optional.of(t));
269260
promise.setFailure(t);
270261
return null;
271262
});
@@ -465,6 +456,11 @@ private static void sendError(final ChannelHandlerContext ctx, final HttpRespons
465456
errorMeter.mark();
466457
final ObjectNode node = mapper.createObjectNode();
467458
node.put("message", message);
459+
if (t.isPresent()){
460+
node.put("Exception-Class", t.get().getClass().getName());
461+
}
462+
463+
468464
final FullHttpResponse response = new DefaultFullHttpResponse(
469465
HTTP_1_1, status, Unpooled.copiedBuffer(node.toString(), CharsetUtil.UTF_8));
470466
response.headers().set(CONTENT_TYPE, "application/json");

0 commit comments

Comments
 (0)