public static Map toSpecification()

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;
    }