@Override
    protected JobExceptionsInfoWithHistory handleRequest(
            HandlerRequest<EmptyRequestBody> request, ExecutionGraphInfo executionGraph) {
        final List<Integer> exceptionToReportMaxSizes =
                request.getQueryParameter(UpperLimitExceptionParameter.class);
        final int exceptionToReportMaxSize =
                exceptionToReportMaxSizes.size() > 0
                        ? exceptionToReportMaxSizes.get(0)
                        : MAX_NUMBER_EXCEPTION_TO_REPORT;
        List<FailureLabelFilterParameter.FailureLabel> failureLabelFilter =
                request.getQueryParameter(FailureLabelFilterParameter.class);
        failureLabelFilter =
                failureLabelFilter.size() > 0 ? failureLabelFilter : EMPTY_FAILURE_LABEL_FILTER;
        return createJobExceptionsInfo(
                executionGraph, exceptionToReportMaxSize, failureLabelFilter);
    }
@Test
    void testOnlyExceptionHistory()
            throws HandlerRequestException, ExecutionException, InterruptedException {
        final RuntimeException rootThrowable = new RuntimeException("exception #0");
        final long rootTimestamp = System.currentTimeMillis();
        final RootExceptionHistoryEntry rootEntry = fromGlobalFailure(rootThrowable, rootTimestamp);
        final ExecutionGraphInfo executionGraphInfo =
                createExecutionGraphInfoWithoutFailureCause(rootEntry);
        final HandlerRequest<EmptyRequestBody> request =
                createRequest(executionGraphInfo.getJobId(), 10);
        final JobExceptionsInfoWithHistory response =
                testInstance.handleRequest(request, executionGraphInfo);

        assertThat(response.getRootException()).isNull();
        assertThat(response.getRootTimestamp()).isNull();

        assertThat(response.getExceptionHistory().getEntries())
                .satisfies(
                        matching(
                                contains(
                                        historyContainsGlobalFailure(
                                                rootThrowable, rootTimestamp))));
    }