showuon commented on code in PR #16264: URL: https://github.com/apache/kafka/pull/16264#discussion_r1635625857
########## clients/src/test/java/org/apache/kafka/test/TestUtils.java: ########## @@ -556,10 +558,22 @@ public static Set<TopicPartition> generateRandomTopicPartitions(int numTopic, in * @return The caught exception cause */ public static <T extends Throwable> T assertFutureThrows(Future<?> future, Class<T> exceptionCauseClass) { - ExecutionException exception = assertThrows(ExecutionException.class, future::get); - assertInstanceOf(exceptionCauseClass, exception.getCause(), - "Unexpected exception cause " + exception.getCause()); - return exceptionCauseClass.cast(exception.getCause()); + try { + future.get(5, TimeUnit.SECONDS); + fail("expected to throw ExecutionException..."); + } catch (TimeoutException e) { + fail("timeout waiting"); + return null; + } catch (ExecutionException e) { + ExecutionException exception = assertThrows(ExecutionException.class, future::get); + assertInstanceOf(exceptionCauseClass, exception.getCause(), + "Unexpected exception cause " + exception.getCause()); + return exceptionCauseClass.cast(exception.getCause()); + } catch (InterruptedException e) { + fail("Unexpected exception cause" + e.getCause()); + return null; + } + return null; Review Comment: 1. Please put the error message clearly. Do you think users understand what this error message mean when reading it: `expected to throw ExecutionException...`, `timeout waiting`? I wrote it like that is to let you have a start. You can check other places to learn how to put a clear error message. 2. when `fail()` method invoked, do you know what will happen? 3. The method is `assertFutureThrows`, so what should we do if no exception thrown? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org