in src/main/java/org/apache/sling/graphql/core/util/SlingGraphQLErrorHelper.java [48:74]
public static Map<String, Object> toSpecification(final String customMessage, final Exception e) {
final Map<String, Object> additionalExceptionInfo = new LinkedHashMap<>();
additionalExceptionInfo.put(GRAPHQL_ERROR_MESSAGE, e.getMessage());
final Map<String, Object> extensionsMap = new LinkedHashMap<>();
extensionsMap.put(GRAPHQL_ERROR_DETAIL, customMessage);
extensionsMap.put(GRAPHQL_ERROR_EXCEPTION, e.getClass().getName());
if (e.getCause() != null) {
extensionsMap.put(GRAPHQL_ERROR_CAUSE, e.getCause().toString());
final List<String> stacktrace = new ArrayList<>();
//keep top MAX_STACK_TRACE_DEPTH stacktrace entries
for (int i=0; i<e.getCause().getStackTrace().length && i<MAX_STACK_TRACE_DEPTH; i++) {
stacktrace.add(e.getCause().getStackTrace()[i].toString());
}
extensionsMap.put(GRAPHQL_ERROR_CAUSE_STACKTRACE, stacktrace);
}
additionalExceptionInfo.put(GRAPHQL_ERROR_EXTENSIONS, extensionsMap);
final List<Map<String, Object>> errorList = new ArrayList<>();
errorList.add(0, additionalExceptionInfo);
final Map<String, Object> result = new LinkedHashMap<>();
result.put(GRAPHQL_ERROR_ERRORS, errorList );
return result;
}