Skip to content

Commit 3fbc25d

Browse files
committed
Retry if there are any not-leader errors in test
Signed-off-by: Robert Young <[email protected]>
1 parent 2f20303 commit 3fbc25d

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

kroxylicious-integration-tests/src/test/java/io/kroxylicious/proxy/filter/authorization/OffsetForLeaderEpochAuthzIT.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.apache.kafka.common.message.OffsetForLeaderEpochRequestData.OffsetForLeaderTopic;
2525
import org.apache.kafka.common.message.OffsetForLeaderEpochResponseData;
2626
import org.apache.kafka.common.protocol.ApiKeys;
27+
import org.apache.kafka.common.protocol.Errors;
2728
import org.apache.kafka.common.resource.PatternType;
2829
import org.apache.kafka.common.resource.ResourcePattern;
2930
import org.apache.kafka.common.resource.ResourceType;
@@ -152,6 +153,12 @@ public OffsetForLeaderEpochRequestData requestData(String user, BaseClusterFixtu
152153
offsetForLeaderEpochRequestData.topics().addAll(List.of(topicA, topicB, topicC));
153154
return offsetForLeaderEpochRequestData;
154155
}
156+
157+
@Override
158+
public boolean needsRetry(OffsetForLeaderEpochResponseData response) {
159+
return response.topics() != null && response.topics().stream().anyMatch(topicResult -> topicResult.partitions() != null
160+
&& topicResult.partitions().stream().anyMatch(epochEndOffset -> Errors.forCode(epochEndOffset.errorCode()) == Errors.NOT_LEADER_OR_FOLLOWER));
161+
}
155162
}
156163

157164
private static OffsetForLeaderTopic createOffsetForLeaderTopic(String topicName, int... partitions) {

0 commit comments

Comments
 (0)