mjsax commented on a change in pull request #9047: URL: https://github.com/apache/kafka/pull/9047#discussion_r458482846
########## File path: streams/src/test/java/org/apache/kafka/streams/processor/internals/GlobalStateManagerImplTest.java ########## @@ -612,72 +617,521 @@ public boolean lockGlobalState() throws IOException { } } - @SuppressWarnings("deprecation") // TODO revisit in follow up PR @Test - public void shouldRetryWhenEndOffsetsThrowsTimeoutException() { - final int retries = 2; + public void shouldNotRetryWhenEndOffsetsThrowsTimeoutExceptionAndTaskTimeoutIsZero() { final AtomicInteger numberOfCalls = new AtomicInteger(0); consumer = new MockConsumer<byte[], byte[]>(OffsetResetStrategy.EARLIEST) { @Override - public synchronized Map<TopicPartition, Long> endOffsets(final Collection<org.apache.kafka.common.TopicPartition> partitions) { + public synchronized Map<TopicPartition, Long> endOffsets(final Collection<TopicPartition> partitions) { numberOfCalls.incrementAndGet(); - throw new TimeoutException(); + throw new TimeoutException("KABOOM!"); } }; + initializeConsumer(0, 0, t1, t2, t3, t4); + streamsConfig = new StreamsConfig(new Properties() { { put(StreamsConfig.APPLICATION_ID_CONFIG, "appId"); put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "dummy:1234"); put(StreamsConfig.STATE_DIR_CONFIG, TestUtils.tempDirectory().getPath()); - put(StreamsConfig.RETRIES_CONFIG, retries); + put(StreamsConfig.TASK_TIMEOUT_MS_CONFIG, 0L); } }); - try { - new GlobalStateManagerImpl( - new LogContext("mock"), - topology, - consumer, - stateDirectory, - stateRestoreListener, - streamsConfig); - } catch (final StreamsException expected) { - assertEquals(numberOfCalls.get(), retries); - } + stateManager = new GlobalStateManagerImpl( + new LogContext("mock"), + time, + topology, + consumer, + stateDirectory, + stateRestoreListener, + streamsConfig + ); + processorContext.setStateManger(stateManager); + stateManager.setGlobalProcessorContext(processorContext); + + final StreamsException expected = assertThrows( + StreamsException.class, + () -> stateManager.initialize() + ); + final Throwable cause = expected.getCause(); + assertThat(cause, instanceOf(TimeoutException.class)); + assertThat(cause.getMessage(), equalTo("KABOOM!")); + + assertEquals(numberOfCalls.get(), 1); } - @SuppressWarnings("deprecation") // TODO revisit in follow up PR Review comment: Third TODO ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org