mjsax commented on code in PR #19446:
URL: https://github.com/apache/kafka/pull/19446#discussion_r2064426826


##########
streams/src/test/java/org/apache/kafka/streams/processor/internals/metrics/StreamsMetricsImplTest.java:
##########
@@ -509,24 +507,30 @@ public void shouldReturnSameMetricIfAlreadyCreated() {
         final MetricName metricName =
                 new MetricName(METRIC_NAME1, STATE_STORE_LEVEL_GROUP, 
DESCRIPTION1, STORE_LEVEL_TAG_MAP);
         final MetricConfig metricConfig = new 
MetricConfig().recordLevel(INFO_RECORDING_LEVEL);
-        final Metrics metrics = new Metrics(metricConfig);
-        assertNull(metrics.metric(metricName));
-        final KafkaMetric kafkaMetric = metrics.addMetricIfAbsent(metricName, 
metricConfig, VALUE_PROVIDER);
-        assertEquals(kafkaMetric, metrics.addMetricIfAbsent(metricName, 
metricConfig, VALUE_PROVIDER));
+        try (Metrics metrics = new Metrics(metricConfig)) {
+            assertNull(metrics.metric(metricName));
+            final KafkaMetric kafkaMetric = 
metrics.addMetricIfAbsent(metricName, metricConfig, VALUE_PROVIDER);
+            assertEquals(kafkaMetric, metrics.addMetricIfAbsent(metricName, 
metricConfig, VALUE_PROVIDER));
+        }
     }
 
     @Test
     public void shouldCreateMetricOnceDuringConcurrentMetricCreationRequest() 
throws InterruptedException {
         final MetricName metricName =
                 new MetricName(METRIC_NAME1, STATE_STORE_LEVEL_GROUP, 
DESCRIPTION1, STORE_LEVEL_TAG_MAP);
         final MetricConfig metricConfig = new 
MetricConfig().recordLevel(INFO_RECORDING_LEVEL);
-        final Metrics metrics = new Metrics(metricConfig);
-        assertNull(metrics.metric(metricName));
-        final AtomicReference<KafkaMetric> metricCreatedViaThread1 = new 
AtomicReference<>();
-        final AtomicReference<KafkaMetric> metricCreatedViaThread2 = new 
AtomicReference<>();
-
-        final Thread thread1 = new Thread(() -> 
metricCreatedViaThread1.set(metrics.addMetricIfAbsent(metricName, metricConfig, 
VALUE_PROVIDER)));
-        final Thread thread2 = new Thread(() -> 
metricCreatedViaThread2.set(metrics.addMetricIfAbsent(metricName, metricConfig, 
VALUE_PROVIDER)));
+        final AtomicReference<KafkaMetric> metricCreatedViaThread1;
+        final AtomicReference<KafkaMetric> metricCreatedViaThread2;
+        final Thread thread1;
+        final Thread thread2;
+        try (Metrics metrics = new Metrics(metricConfig)) {
+            assertNull(metrics.metric(metricName));
+            metricCreatedViaThread1 = new AtomicReference<>();
+            metricCreatedViaThread2 = new AtomicReference<>();

Review Comment:
   Why do we split declaration for these two variables and their initialization 
into different lines?



-- 
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

Reply via email to