omkreddy commented on code in PR #17814:
URL: https://github.com/apache/kafka/pull/17814#discussion_r1844216574


##########
core/src/test/java/kafka/test/api/ShareConsumerTest.java:
##########
@@ -152,260 +152,253 @@ public void destroyCluster() throws Exception {
     @ParameterizedTest(name = "{displayName}.persister={0}")
     @ValueSource(strings = {NO_OP_PERSISTER, DEFAULT_STATE_PERSISTER})
     public void testPollNoSubscribeFails(String persister) {
-        KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1");
-        assertEquals(Collections.emptySet(), shareConsumer.subscription());
-        // "Consumer is not subscribed to any topics."
-        assertThrows(IllegalStateException.class, () -> 
shareConsumer.poll(Duration.ofMillis(500)));
-        shareConsumer.close();
+        try (KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1")) {
+            assertEquals(Collections.emptySet(), shareConsumer.subscription());
+            // "Consumer is not subscribed to any topics."
+            assertThrows(IllegalStateException.class, () -> 
shareConsumer.poll(Duration.ofMillis(500)));
+        }
     }
 
     @ParameterizedTest(name = "{displayName}.persister={0}")
     @ValueSource(strings = {NO_OP_PERSISTER, DEFAULT_STATE_PERSISTER})
     public void testSubscribeAndPollNoRecords(String persister) {
-        KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1");
-        Set<String> subscription = Collections.singleton(tp.topic());
-        shareConsumer.subscribe(subscription);
-        assertEquals(subscription, shareConsumer.subscription());
         alterShareAutoOffsetReset("group1", "earliest");
-        ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
-        shareConsumer.close();
-        assertEquals(0, records.count());
+        try (KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1")) {
+            Set<String> subscription = Collections.singleton(tp.topic());
+            shareConsumer.subscribe(subscription);
+            assertEquals(subscription, shareConsumer.subscription());
+            ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
+            assertEquals(0, records.count());
+        }
     }
 
     @ParameterizedTest(name = "{displayName}.persister={0}")
     @ValueSource(strings = {NO_OP_PERSISTER, DEFAULT_STATE_PERSISTER})
     public void testSubscribePollUnsubscribe(String persister) {
-        KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1");
-        Set<String> subscription = Collections.singleton(tp.topic());
-        shareConsumer.subscribe(subscription);
-        assertEquals(subscription, shareConsumer.subscription());
         alterShareAutoOffsetReset("group1", "earliest");
-        ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
-        shareConsumer.unsubscribe();
-        assertEquals(Collections.emptySet(), shareConsumer.subscription());
-        shareConsumer.close();
-        assertEquals(0, records.count());
+        try (KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1")) {
+            Set<String> subscription = Collections.singleton(tp.topic());
+            shareConsumer.subscribe(subscription);
+            assertEquals(subscription, shareConsumer.subscription());
+            ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
+            shareConsumer.unsubscribe();
+            assertEquals(Collections.emptySet(), shareConsumer.subscription());
+            assertEquals(0, records.count());
+        }
     }
 
     @ParameterizedTest(name = "{displayName}.persister={0}")
     @ValueSource(strings = {NO_OP_PERSISTER, DEFAULT_STATE_PERSISTER})
     public void testSubscribePollSubscribe(String persister) {
-        KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1");
-        Set<String> subscription = Collections.singleton(tp.topic());
-        shareConsumer.subscribe(subscription);
-        assertEquals(subscription, shareConsumer.subscription());
         alterShareAutoOffsetReset("group1", "earliest");
-        ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
-        assertEquals(0, records.count());
-        shareConsumer.subscribe(subscription);
-        assertEquals(subscription, shareConsumer.subscription());
-        records = shareConsumer.poll(Duration.ofMillis(500));
-        shareConsumer.close();
-        assertEquals(0, records.count());
+        try (KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1")) {
+            Set<String> subscription = Collections.singleton(tp.topic());
+            shareConsumer.subscribe(subscription);
+            assertEquals(subscription, shareConsumer.subscription());
+            ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
+            assertEquals(0, records.count());
+            shareConsumer.subscribe(subscription);
+            assertEquals(subscription, shareConsumer.subscription());
+            records = shareConsumer.poll(Duration.ofMillis(500));
+            assertEquals(0, records.count());
+        }
     }
 
     @ParameterizedTest(name = "{displayName}.persister={0}")
     @ValueSource(strings = {NO_OP_PERSISTER, DEFAULT_STATE_PERSISTER})
     public void testSubscribeUnsubscribePollFails(String persister) {
-        KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1");
-        Set<String> subscription = Collections.singleton(tp.topic());
-        shareConsumer.subscribe(subscription);
-        assertEquals(subscription, shareConsumer.subscription());
         alterShareAutoOffsetReset("group1", "earliest");
-        ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
-        shareConsumer.unsubscribe();
-        assertEquals(Collections.emptySet(), shareConsumer.subscription());
-        // "Consumer is not subscribed to any topics."
-        assertThrows(IllegalStateException.class, () -> 
shareConsumer.poll(Duration.ofMillis(500)));
-        shareConsumer.close();
-        assertEquals(0, records.count());
+        try (KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1")) {
+            Set<String> subscription = Collections.singleton(tp.topic());
+            shareConsumer.subscribe(subscription);
+            assertEquals(subscription, shareConsumer.subscription());
+            ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
+            shareConsumer.unsubscribe();
+            assertEquals(Collections.emptySet(), shareConsumer.subscription());
+            // "Consumer is not subscribed to any topics."
+            assertThrows(IllegalStateException.class, () -> 
shareConsumer.poll(Duration.ofMillis(500)));
+            assertEquals(0, records.count());
+        }
     }
 
     @ParameterizedTest(name = "{displayName}.persister={0}")
     @ValueSource(strings = {NO_OP_PERSISTER, DEFAULT_STATE_PERSISTER})
     public void testSubscribeSubscribeEmptyPollFails(String persister) {
-        KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1");
-        Set<String> subscription = Collections.singleton(tp.topic());
-        shareConsumer.subscribe(subscription);
-        assertEquals(subscription, shareConsumer.subscription());
         alterShareAutoOffsetReset("group1", "earliest");
-        ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
-        shareConsumer.subscribe(Collections.emptySet());
-        assertEquals(Collections.emptySet(), shareConsumer.subscription());
-        // "Consumer is not subscribed to any topics."
-        assertThrows(IllegalStateException.class, () -> 
shareConsumer.poll(Duration.ofMillis(500)));
-        shareConsumer.close();
-        assertEquals(0, records.count());
+        try (KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1")) {
+            Set<String> subscription = Collections.singleton(tp.topic());
+            shareConsumer.subscribe(subscription);
+            assertEquals(subscription, shareConsumer.subscription());
+            ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(500));
+            shareConsumer.subscribe(Collections.emptySet());
+            assertEquals(Collections.emptySet(), shareConsumer.subscription());
+            // "Consumer is not subscribed to any topics."
+            assertThrows(IllegalStateException.class, () -> 
shareConsumer.poll(Duration.ofMillis(500)));
+            assertEquals(0, records.count());
+        }
     }
 
     @ParameterizedTest(name = "{displayName}.persister={0}")
     @ValueSource(strings = {NO_OP_PERSISTER, DEFAULT_STATE_PERSISTER})
     public void testSubscriptionAndPoll(String persister) {
-        ProducerRecord<byte[], byte[]> record = new 
ProducerRecord<>(tp.topic(), tp.partition(), null, "key".getBytes(), 
"value".getBytes());
-        KafkaProducer<byte[], byte[]> producer = createProducer(new 
ByteArraySerializer(), new ByteArraySerializer());
-        producer.send(record);
-        KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1");
-        shareConsumer.subscribe(Collections.singleton(tp.topic()));
         alterShareAutoOffsetReset("group1", "earliest");
-        ConsumerRecords<byte[], byte[]> records = 
shareConsumer.poll(Duration.ofMillis(5000));
-        assertEquals(1, records.count());
-        shareConsumer.close();
-        producer.close();
+        try (KafkaProducer<byte[], byte[]> producer = createProducer(new 
ByteArraySerializer(), new ByteArraySerializer());
+             KafkaShareConsumer<byte[], byte[]> shareConsumer = 
createShareConsumer(new ByteArrayDeserializer(), new ByteArrayDeserializer(), 
"group1")) {

Review Comment:
   need to close shareConsumer here and other places ?



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to