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();