private static String getExceptionMessage()

in flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/ExceptionUtils.java [90:120]


    private static String getExceptionMessage(Throwable throwable, int level) {
        if (throwable == null) {
            return null;
        }

        if (throwable instanceof SerializedThrowable) {
            var serialized = ((SerializedThrowable) throwable);
            var deserialized =
                    serialized.deserializeError(Thread.currentThread().getContextClassLoader());
            if (deserialized == throwable) {
                var msg = serialized.getMessage();
                return msg != null ? msg : serialized.getOriginalErrorClassName();
            } else {
                return getExceptionMessage(deserialized, level);
            }
        }

        var msg =
                Optional.ofNullable(throwable.getMessage())
                        .orElse(throwable.getClass().getSimpleName());

        if (level >= EXCEPTION_LIMIT_FOR_EVENT_MESSAGE) {
            return msg;
        }

        if (throwable.getCause() == null) {
            return msg;
        } else {
            return msg + " -> " + getExceptionMessage(throwable.getCause(), level + 1);
        }
    }