From: Kai Moritz <kai@juplo.de>
Date: Sat, 11 Jan 2025 09:58:25 +0000 (+0100)
Subject: Bedingungsloser Reset (und besserer Methoden-Name) für `BackOffState`
X-Git-Tag: consumer/spring-consumer--error-handling--COMMITS--2025-02~3
X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;h=df672b6a28f96b4fe588d6ce46d71b2001eac627;p=demos%2Fkafka%2Ftraining

Bedingungsloser Reset (und besserer Methoden-Name) für `BackOffState`
---

diff --git a/src/main/java/de/juplo/kafka/BackOffState.java b/src/main/java/de/juplo/kafka/BackOffState.java
index 4981bb6c..a51b5a98 100644
--- a/src/main/java/de/juplo/kafka/BackOffState.java
+++ b/src/main/java/de/juplo/kafka/BackOffState.java
@@ -95,20 +95,9 @@ class BackOffState
     return this.offset == offset && timeNextRetryIsDue == null;
   }
 
-  void markAsCompleted()
+  void reset()
   {
-    if (timeNextRetryIsDue != null)
-    {
-      log.info(
-        "{} - {}. retry for offset={} in {} succeeded after {}",
-        id,
-        numRetries,
-        offset,
-        topicPartition,
-        Duration.between(startTime, timeNextRetryIsDue));
-
-      timeNextRetryIsDue = null;
-    }
+    timeNextRetryIsDue = null;
   }
 
   private void initializeNextBackOff()
diff --git a/src/main/java/de/juplo/kafka/ExampleConsumer.java b/src/main/java/de/juplo/kafka/ExampleConsumer.java
index 9e73b119..b767ca82 100644
--- a/src/main/java/de/juplo/kafka/ExampleConsumer.java
+++ b/src/main/java/de/juplo/kafka/ExampleConsumer.java
@@ -178,7 +178,7 @@ public class ExampleConsumer implements ConsumerRebalanceListener, Runnable
                 log.warn("{} - Ignoring non-retryable error: {}", id, e.toString());
               }
 
-              backOffState[topicPartition.partition()].markAsCompleted();
+              backOffState[topicPartition.partition()].reset();
             }
           }
         }
diff --git a/src/test/java/de/juplo/kafka/BackOffStateTest.java b/src/test/java/de/juplo/kafka/BackOffStateTest.java
index 338631c1..7160768d 100644
--- a/src/test/java/de/juplo/kafka/BackOffStateTest.java
+++ b/src/test/java/de/juplo/kafka/BackOffStateTest.java
@@ -263,14 +263,14 @@ class BackOffStateTest
   }
 
   @Test
-  @DisplayName("A started BackOffState is not waiting for a retry if it is marked as completed")
-  void StartedBackOffStateIsNotWaitingForRetryIfMarkedCompleted()
+  @DisplayName("A started BackOffState is not waiting for a retry after a reset")
+  void StartedBackOffStateIsNotWaitingForRetryAfterReset()
   {
     // GIVEN
     BackOffState backOffState = StartedBackoffStateWithRetries();
 
     // WHEN
-    backOffState.markAsCompleted();
+    backOffState.reset();
 
     // THEN
     assertThat(backOffState.isWaitingForNextRetry()).isFalse();
@@ -284,7 +284,7 @@ class BackOffStateTest
     BackOffState backOffState = StartedBackoffStateWithRetries();
 
     // WHEN
-    backOffState.markAsCompleted();
+    backOffState.reset();
 
     // THEN
     assertThat(backOffState.isStarted(OFFSET)).isTrue();