private void testTimeoutExceptionHandling(AsyncDataStream.OutputMode outputMode) throws Exception {
AsyncFunction<Integer, Integer> asyncFunction = new NoOpAsyncFunction<>();
long timeout = 10L;
AsyncWaitOperator<Integer, Integer> asyncWaitOperator = new AsyncWaitOperator<>(
asyncFunction,
timeout,
2,
outputMode);
final MockEnvironment mockEnvironment = createMockEnvironment();
mockEnvironment.setExpectedExternalFailureCause(Throwable.class);
OneInputStreamOperatorTestHarness<Integer, Integer> harness = new OneInputStreamOperatorTestHarness<>(
asyncWaitOperator,
IntSerializer.INSTANCE,
mockEnvironment);
harness.open();
synchronized (harness.getCheckpointLock()) {
harness.processElement(1, 1L);
}
harness.setProcessingTime(10L);
synchronized (harness.getCheckpointLock()) {
harness.close();
}
}