This is an automated email from the ASF dual-hosted git repository.

chia7712 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 7c2b51eea0e MINOR: Fix raw type warnings in 
AbstractHeartbeatRequestManagerTest (#22637)
7c2b51eea0e is described below

commit 7c2b51eea0ec9be5429d0bb7753e013569a1c1b9
Author: Chia-Yi Chiu <[email protected]>
AuthorDate: Wed Jun 24 21:18:44 2026 +0900

    MINOR: Fix raw type warnings in AbstractHeartbeatRequestManagerTest (#22637)
    
    ## Summary
    
    Fix the `unchecked` compile warning in
    `AbstractHeartbeatRequestManagerTest`: `AbstractHeartbeatRequestManager`
    field is raw for the same reason.
    ```
    > Task :clients:compileTestJava
    Note: Some input files use or override a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note:
    
clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractHeartbeatRequestManagerTest.java
    uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    ```
    
    Changes:
    - Parameterize `AbstractHeartbeatRequestManagerTest` with `<R extends
    AbstractResponse>` so `membershipManager` and `heartbeatRequestManager`
    are strongly typed instead of raw.
    - Change `assertHeartbeatErrorHandling` to take a typed `R response`.
    - Constructor Injection: Use a constructor in the base test class to
    pass the responseClass, allowing type-safe casting via Class.cast() and
    removing the need for @SuppressWarnings.
    - Update `ConsumerHeartbeatRequestManagerTest` and
    `ShareHeartbeatRequestManagerTest` to extend the base with their
    concrete heartbeat response types (`ConsumerGroupHeartbeatResponse` and
    `ShareGroupHeartbeatResponse`).
    
    ## Testing
    
    - `./gradlew clients:compileTestJava --rerun-tasks` → BUILD SUCCESSFUL,
    no `unchecked` note for `AbstractHeartbeatRequestManagerTest`.
    - `./gradlew clients:test --tests
    "*ConsumerHeartbeatRequestManagerTest*" --tests
    "*ShareHeartbeatRequestManagerTest*"` → all tests pass.
    
    Reviewers: Chia-Ping Tsai <[email protected]>
---
 .../internals/AbstractHeartbeatRequestManagerTest.java   | 16 +++++++++++-----
 .../internals/ConsumerHeartbeatRequestManagerTest.java   |  6 +++++-
 .../internals/ShareHeartbeatRequestManagerTest.java      |  6 +++++-
 3 files changed, 21 insertions(+), 7 deletions(-)

diff --git 
a/clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractHeartbeatRequestManagerTest.java
 
b/clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractHeartbeatRequestManagerTest.java
index 7d77b6ebae7..48c9ca51c07 100644
--- 
a/clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractHeartbeatRequestManagerTest.java
+++ 
b/clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractHeartbeatRequestManagerTest.java
@@ -50,7 +50,7 @@ import static org.mockito.Mockito.when;
  * behavior implemented in the abstract manager and must produce the same 
outcome for every
  * concrete subclass.
  */
-abstract class AbstractHeartbeatRequestManagerTest {
+abstract class AbstractHeartbeatRequestManagerTest<R extends AbstractResponse> 
{
 
     protected static final String DEFAULT_GROUP_ID = "groupId";
     protected static final String DEFAULT_MEMBER_ID = "member-id";
@@ -67,8 +67,14 @@ abstract class AbstractHeartbeatRequestManagerTest {
     protected SubscriptionState subscriptions;
     protected BackgroundEventHandler backgroundEventHandler;
     protected HeartbeatRequestState heartbeatRequestState;
-    protected AbstractMembershipManager membershipManager;
-    protected AbstractHeartbeatRequestManager heartbeatRequestManager;
+    protected AbstractMembershipManager<R> membershipManager;
+    protected AbstractHeartbeatRequestManager<R> heartbeatRequestManager;
+
+    protected final Class<R> responseClass;
+
+    protected AbstractHeartbeatRequestManagerTest(Class<R> responseClass) {
+        this.responseClass = responseClass;
+    }
 
     protected abstract ClientResponse createHeartbeatResponse(
         NetworkClientDelegate.UnsentRequest request, Errors error);
@@ -220,14 +226,14 @@ abstract class AbstractHeartbeatRequestManagerTest {
             result.unsentRequests.get(0),
             error);
         result.unsentRequests.get(0).handler().onComplete(response);
-        AbstractResponse mockResponse = response.responseBody();
+        R mockResponse = responseClass.cast(response.responseBody());
 
         assertHeartbeatErrorHandling(error, isFatal, mockResponse);
     }
 
     protected void assertHeartbeatErrorHandling(final Errors error,
                                                 final boolean isFatal,
-                                                final AbstractResponse 
response) {
+                                                final R response) {
         switch (error) {
             case NONE:
                 verify(membershipManager).onHeartbeatSuccess(response);
diff --git 
a/clients/src/test/java/org/apache/kafka/clients/consumer/internals/ConsumerHeartbeatRequestManagerTest.java
 
b/clients/src/test/java/org/apache/kafka/clients/consumer/internals/ConsumerHeartbeatRequestManagerTest.java
index 03ebf4ae0ba..ef88b3e0720 100644
--- 
a/clients/src/test/java/org/apache/kafka/clients/consumer/internals/ConsumerHeartbeatRequestManagerTest.java
+++ 
b/clients/src/test/java/org/apache/kafka/clients/consumer/internals/ConsumerHeartbeatRequestManagerTest.java
@@ -88,7 +88,7 @@ import static org.mockito.Mockito.when;
 
 
 public class ConsumerHeartbeatRequestManagerTest
-        extends AbstractHeartbeatRequestManagerTest {
+        extends 
AbstractHeartbeatRequestManagerTest<ConsumerGroupHeartbeatResponse> {
 
     private static final String DEFAULT_REMOTE_ASSIGNOR = "uniform";
     private static final String DEFAULT_GROUP_INSTANCE_ID = 
"group-instance-id";
@@ -102,6 +102,10 @@ public class ConsumerHeartbeatRequestManagerTest
     private HeartbeatState heartbeatState;
     private LogContext logContext;
 
+    public ConsumerHeartbeatRequestManagerTest() {
+        super(ConsumerGroupHeartbeatResponse.class);
+    }
+
     @BeforeEach
     public void setUp() {
         this.time = new MockTime();
diff --git 
a/clients/src/test/java/org/apache/kafka/clients/consumer/internals/ShareHeartbeatRequestManagerTest.java
 
b/clients/src/test/java/org/apache/kafka/clients/consumer/internals/ShareHeartbeatRequestManagerTest.java
index 26e9e795ffc..5088665a4ef 100644
--- 
a/clients/src/test/java/org/apache/kafka/clients/consumer/internals/ShareHeartbeatRequestManagerTest.java
+++ 
b/clients/src/test/java/org/apache/kafka/clients/consumer/internals/ShareHeartbeatRequestManagerTest.java
@@ -70,7 +70,7 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 public class ShareHeartbeatRequestManagerTest
-        extends AbstractHeartbeatRequestManagerTest {
+        extends 
AbstractHeartbeatRequestManagerTest<ShareGroupHeartbeatResponse> {
 
     private static final String SHARE_CONSUMER_COORDINATOR_METRICS = 
"consumer-share-coordinator-metrics";
 
@@ -84,6 +84,10 @@ public class ShareHeartbeatRequestManagerTest
     private Metrics metrics;
     private LogContext logContext;
 
+    public ShareHeartbeatRequestManagerTest() {
+        super(ShareGroupHeartbeatResponse.class);
+    }
+
     @BeforeEach
     public void setUp() {
         time = new MockTime();

Reply via email to