static <T> CompletionStage<T> executeCompletionStageSupplier(Observation observation,
                                                                 Supplier<CompletionStage<T>> supplier) {
        return decorateCompletionStageSupplier(observation, supplier).get();
    }
@Test
    public void shouldExecuteCompletionStageAndReturnWithExceptionAtSyncStage() throws Throwable {
        Supplier<CompletionStage<String>> completionStageSupplier = () -> {
            throw new HelloWorldException();
        };

        assertThatThrownBy(() -> Observations.executeCompletionStageSupplier(observation, completionStageSupplier))
            .isInstanceOf(HelloWorldException.class);

        assertThat(observationRegistry)
            .hasSingleObservationThat()
            .hasNameEqualTo(ObservationsTest.class.getName())
            .hasBeenStarted()
            .hasBeenStopped()
            .assertThatError()
            .isInstanceOf(HelloWorldException.class);
    }