From: Kai Moritz <kai@juplo.de>
Date: Sat, 2 Nov 2024 10:33:53 +0000 (+0100)
Subject: Refactor: DRY für state-change zu UNASSIGNED
X-Git-Url: http://juplo.de/gitweb/?a=commitdiff_plain;h=15e6e317e4568c3e9197889e72b2e70a2804ad2f;p=demos%2Fkafka%2Ftraining

Refactor: DRY für state-change zu UNASSIGNED
---

diff --git a/src/main/java/de/juplo/kafka/ExampleConsumer.java b/src/main/java/de/juplo/kafka/ExampleConsumer.java
index 2dec41d..b08b209 100644
--- a/src/main/java/de/juplo/kafka/ExampleConsumer.java
+++ b/src/main/java/de/juplo/kafka/ExampleConsumer.java
@@ -368,15 +368,8 @@ public class ExampleConsumer implements Runnable, ConsumerRebalanceListener
         PartitionState partitionState = partitionStates[partition.partition()];
         switch (partitionState)
         {
-          case RESTORING:
-          case ASSIGNED:
-            phaser.arriveAndDeregister();
-            log.info(
-              "{} - Deregistered party for revoked partition {}. New total number of parties: {}",
-              id,
-              partition,
-              phaser.getRegisteredParties());
-            partitionStates[partition.partition()] = PartitionState.UNASSIGNED;
+          case RESTORING, ASSIGNED:
+            stateUnassigned(partition.partition());
             break;
           default:
           case UNASSIGNED:
@@ -405,6 +398,25 @@ public class ExampleConsumer implements Runnable, ConsumerRebalanceListener
     consumer.resume(List.of(messagePartition));
   }
 
+  private void stateUnassigned(int partition)
+  {
+    log.info(
+      "{} - State-change for partition {}: {} -> UNASSIGNED",
+      id,
+      partition,
+      partitionStates[partition]);
+
+    partitionStates[partition] = PartitionState.UNASSIGNED;
+
+    phaser.arriveAndDeregister();
+    log.info(
+      "{} - Deregistered party for revoked partition {}. New total number of parties: {}",
+      id,
+      partition,
+      phaser.getRegisteredParties());
+  }
+
+
   public void shutdown() throws InterruptedException
   {
     log.info("{} joining the worker-thread...", id);