mirror of https://github.com/apache/kafka.git
MINOR: Remove explicit version checks in getErrorResponse methods (#7708)
This patch removes the explicit version check pattern we used in `getErrorResponse`, which is a pain to maintain (as seen by KAFKA-9200). We already check that requests have a valid version range in the `AbstractRequest` constructor. Reviewers: Andrew Choi <andrewchoi5@users.noreply.github.com>, Ismael Juma <ismael@juma.me.uk>
This commit is contained in:
parent
dcf660a2a0
commit
32bf0774e9
|
@ -191,19 +191,11 @@ public class AlterConfigsRequest extends AbstractRequest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
||||||
short version = version();
|
|
||||||
switch (version) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
ApiError error = ApiError.fromThrowable(e);
|
ApiError error = ApiError.fromThrowable(e);
|
||||||
Map<ConfigResource, ApiError> errors = new HashMap<>(configs.size());
|
Map<ConfigResource, ApiError> errors = new HashMap<>(configs.size());
|
||||||
for (ConfigResource resource : configs.keySet())
|
for (ConfigResource resource : configs.keySet())
|
||||||
errors.put(resource, error);
|
errors.put(resource, error);
|
||||||
return new AlterConfigsResponse(throttleTimeMs, errors);
|
return new AlterConfigsResponse(throttleTimeMs, errors);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
version, this.getClass().getSimpleName(), ApiKeys.ALTER_CONFIGS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AlterConfigsRequest parse(ByteBuffer buffer, short version) {
|
public static AlterConfigsRequest parse(ByteBuffer buffer, short version) {
|
||||||
|
|
|
@ -144,21 +144,10 @@ public class AlterReplicaLogDirsRequest extends AbstractRequest {
|
||||||
@Override
|
@Override
|
||||||
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
||||||
Map<TopicPartition, Errors> responseMap = new HashMap<>();
|
Map<TopicPartition, Errors> responseMap = new HashMap<>();
|
||||||
|
|
||||||
for (Map.Entry<TopicPartition, String> entry : partitionDirs.entrySet()) {
|
for (Map.Entry<TopicPartition, String> entry : partitionDirs.entrySet()) {
|
||||||
responseMap.put(entry.getKey(), Errors.forException(e));
|
responseMap.put(entry.getKey(), Errors.forException(e));
|
||||||
}
|
}
|
||||||
|
|
||||||
short versionId = version();
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
return new AlterReplicaLogDirsResponse(throttleTimeMs, responseMap);
|
return new AlterReplicaLogDirsResponse(throttleTimeMs, responseMap);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(
|
|
||||||
String.format("Version %d is not valid. Valid versions for %s are 0 to %d", versionId,
|
|
||||||
this.getClass().getSimpleName(), ApiKeys.ALTER_REPLICA_LOG_DIRS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<TopicPartition, String> partitionDirs() {
|
public Map<TopicPartition, String> partitionDirs() {
|
||||||
|
|
|
@ -157,18 +157,10 @@ public class CreateAclsRequest extends AbstractRequest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable throwable) {
|
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable throwable) {
|
||||||
short versionId = version();
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
List<CreateAclsResponse.AclCreationResponse> responses = new ArrayList<>();
|
List<CreateAclsResponse.AclCreationResponse> responses = new ArrayList<>();
|
||||||
for (int i = 0; i < aclCreations.size(); i++)
|
for (int i = 0; i < aclCreations.size(); i++)
|
||||||
responses.add(new CreateAclsResponse.AclCreationResponse(ApiError.fromThrowable(throwable)));
|
responses.add(new CreateAclsResponse.AclCreationResponse(ApiError.fromThrowable(throwable)));
|
||||||
return new CreateAclsResponse(throttleTimeMs, responses);
|
return new CreateAclsResponse(throttleTimeMs, responses);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.CREATE_ACLS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CreateAclsRequest parse(ByteBuffer buffer, short version) {
|
public static CreateAclsRequest parse(ByteBuffer buffer, short version) {
|
||||||
|
|
|
@ -231,16 +231,7 @@ public class CreatePartitionsRequest extends AbstractRequest {
|
||||||
for (String topic : newPartitions.keySet()) {
|
for (String topic : newPartitions.keySet()) {
|
||||||
topicErrors.put(topic, ApiError.fromThrowable(e));
|
topicErrors.put(topic, ApiError.fromThrowable(e));
|
||||||
}
|
}
|
||||||
|
|
||||||
short versionId = version();
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
return new CreatePartitionsResponse(throttleTimeMs, topicErrors);
|
return new CreatePartitionsResponse(throttleTimeMs, topicErrors);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.CREATE_PARTITIONS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CreatePartitionsRequest parse(ByteBuffer buffer, short version) {
|
public static CreatePartitionsRequest parse(ByteBuffer buffer, short version) {
|
||||||
|
|
|
@ -133,20 +133,12 @@ public class DeleteAclsRequest extends AbstractRequest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable throwable) {
|
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable throwable) {
|
||||||
short versionId = version();
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
List<DeleteAclsResponse.AclFilterResponse> responses = new ArrayList<>();
|
List<DeleteAclsResponse.AclFilterResponse> responses = new ArrayList<>();
|
||||||
for (int i = 0; i < filters.size(); i++) {
|
for (int i = 0; i < filters.size(); i++) {
|
||||||
responses.add(new DeleteAclsResponse.AclFilterResponse(
|
responses.add(new DeleteAclsResponse.AclFilterResponse(
|
||||||
ApiError.fromThrowable(throwable), Collections.emptySet()));
|
ApiError.fromThrowable(throwable), Collections.emptySet()));
|
||||||
}
|
}
|
||||||
return new DeleteAclsResponse(throttleTimeMs, responses);
|
return new DeleteAclsResponse(throttleTimeMs, responses);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.DELETE_ACLS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DeleteAclsRequest parse(ByteBuffer buffer, short version) {
|
public static DeleteAclsRequest parse(ByteBuffer buffer, short version) {
|
||||||
|
|
|
@ -155,15 +155,7 @@ public class DeleteRecordsRequest extends AbstractRequest {
|
||||||
responseMap.put(entry.getKey(), new DeleteRecordsResponse.PartitionResponse(DeleteRecordsResponse.INVALID_LOW_WATERMARK, Errors.forException(e)));
|
responseMap.put(entry.getKey(), new DeleteRecordsResponse.PartitionResponse(DeleteRecordsResponse.INVALID_LOW_WATERMARK, Errors.forException(e)));
|
||||||
}
|
}
|
||||||
|
|
||||||
short versionId = version();
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
return new DeleteRecordsResponse(throttleTimeMs, responseMap);
|
return new DeleteRecordsResponse(throttleTimeMs, responseMap);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.DELETE_RECORDS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int timeout() {
|
public int timeout() {
|
||||||
|
|
|
@ -109,16 +109,7 @@ public class DescribeAclsRequest extends AbstractRequest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable throwable) {
|
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable throwable) {
|
||||||
short versionId = version();
|
return new DescribeAclsResponse(throttleTimeMs, ApiError.fromThrowable(throwable), Collections.emptySet());
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
return new DescribeAclsResponse(throttleTimeMs, ApiError.fromThrowable(throwable),
|
|
||||||
Collections.emptySet());
|
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.DESCRIBE_ACLS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DescribeAclsRequest parse(ByteBuffer buffer, short version) {
|
public static DescribeAclsRequest parse(ByteBuffer buffer, short version) {
|
||||||
|
|
|
@ -164,11 +164,6 @@ public class DescribeConfigsRequest extends AbstractRequest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DescribeConfigsResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
public DescribeConfigsResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
||||||
short version = version();
|
|
||||||
switch (version) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
ApiError error = ApiError.fromThrowable(e);
|
ApiError error = ApiError.fromThrowable(e);
|
||||||
Map<ConfigResource, DescribeConfigsResponse.Config> errors = new HashMap<>(resources().size());
|
Map<ConfigResource, DescribeConfigsResponse.Config> errors = new HashMap<>(resources().size());
|
||||||
DescribeConfigsResponse.Config config = new DescribeConfigsResponse.Config(error,
|
DescribeConfigsResponse.Config config = new DescribeConfigsResponse.Config(error,
|
||||||
|
@ -176,10 +171,6 @@ public class DescribeConfigsRequest extends AbstractRequest {
|
||||||
for (ConfigResource resource : resources())
|
for (ConfigResource resource : resources())
|
||||||
errors.put(resource, config);
|
errors.put(resource, config);
|
||||||
return new DescribeConfigsResponse(throttleTimeMs, errors);
|
return new DescribeConfigsResponse(throttleTimeMs, errors);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
version, this.getClass().getSimpleName(), ApiKeys.DESCRIBE_CONFIGS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DescribeConfigsRequest parse(ByteBuffer buffer, short version) {
|
public static DescribeConfigsRequest parse(ByteBuffer buffer, short version) {
|
||||||
|
|
|
@ -139,16 +139,7 @@ public class DescribeLogDirsRequest extends AbstractRequest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
||||||
short versionId = version();
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
return new DescribeLogDirsResponse(throttleTimeMs, new HashMap<String, LogDirInfo>());
|
return new DescribeLogDirsResponse(throttleTimeMs, new HashMap<String, LogDirInfo>());
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(
|
|
||||||
String.format("Version %d is not valid. Valid versions for %s are 0 to %d", versionId,
|
|
||||||
this.getClass().getSimpleName(), ApiKeys.DESCRIBE_LOG_DIRS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAllTopicPartitions() {
|
public boolean isAllTopicPartitions() {
|
||||||
|
|
|
@ -117,37 +117,14 @@ public class JoinGroupRequest extends AbstractRequest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
||||||
short versionId = version();
|
return new JoinGroupResponse(new JoinGroupResponseData()
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
return new JoinGroupResponse(
|
|
||||||
new JoinGroupResponseData()
|
|
||||||
.setErrorCode(Errors.forException(e).code())
|
|
||||||
.setGenerationId(JoinGroupResponse.UNKNOWN_GENERATION_ID)
|
|
||||||
.setProtocolName(JoinGroupResponse.UNKNOWN_PROTOCOL)
|
|
||||||
.setLeader(JoinGroupResponse.UNKNOWN_MEMBER_ID)
|
|
||||||
.setMemberId(JoinGroupResponse.UNKNOWN_MEMBER_ID)
|
|
||||||
.setMembers(Collections.emptyList())
|
|
||||||
);
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
case 5:
|
|
||||||
return new JoinGroupResponse(
|
|
||||||
new JoinGroupResponseData()
|
|
||||||
.setThrottleTimeMs(throttleTimeMs)
|
.setThrottleTimeMs(throttleTimeMs)
|
||||||
.setErrorCode(Errors.forException(e).code())
|
.setErrorCode(Errors.forException(e).code())
|
||||||
.setGenerationId(JoinGroupResponse.UNKNOWN_GENERATION_ID)
|
.setGenerationId(JoinGroupResponse.UNKNOWN_GENERATION_ID)
|
||||||
.setProtocolName(JoinGroupResponse.UNKNOWN_PROTOCOL)
|
.setProtocolName(JoinGroupResponse.UNKNOWN_PROTOCOL)
|
||||||
.setLeader(JoinGroupResponse.UNKNOWN_MEMBER_ID)
|
.setLeader(JoinGroupResponse.UNKNOWN_MEMBER_ID)
|
||||||
.setMemberId(JoinGroupResponse.UNKNOWN_MEMBER_ID)
|
.setMemberId(JoinGroupResponse.UNKNOWN_MEMBER_ID)
|
||||||
.setMembers(Collections.emptyList())
|
.setMembers(Collections.emptyList()));
|
||||||
);
|
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.JOIN_GROUP.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static JoinGroupRequest parse(ByteBuffer buffer, short version) {
|
public static JoinGroupRequest parse(ByteBuffer buffer, short version) {
|
||||||
|
|
|
@ -269,18 +269,7 @@ public class ListOffsetRequest extends AbstractRequest {
|
||||||
responseData.put(partition, partitionError);
|
responseData.put(partition, partitionError);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
case 5:
|
|
||||||
return new ListOffsetResponse(throttleTimeMs, responseData);
|
return new ListOffsetResponse(throttleTimeMs, responseData);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.LIST_OFFSETS.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int replicaId() {
|
public int replicaId() {
|
||||||
|
|
|
@ -133,24 +133,8 @@ public class MetadataRequest extends AbstractRequest {
|
||||||
.setPartitions(Collections.emptyList()));
|
.setPartitions(Collections.emptyList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
short versionId = version();
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
return new MetadataResponse(responseData);
|
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
case 5:
|
|
||||||
case 6:
|
|
||||||
case 7:
|
|
||||||
case 8:
|
|
||||||
responseData.setThrottleTimeMs(throttleTimeMs);
|
responseData.setThrottleTimeMs(throttleTimeMs);
|
||||||
return new MetadataResponse(responseData);
|
return new MetadataResponse(responseData);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.METADATA.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAllTopics() {
|
public boolean isAllTopics() {
|
||||||
|
|
|
@ -124,31 +124,9 @@ public class OffsetCommitRequest extends AbstractRequest {
|
||||||
public OffsetCommitResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
public OffsetCommitResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
||||||
List<OffsetCommitResponseTopic>
|
List<OffsetCommitResponseTopic>
|
||||||
responseTopicData = getErrorResponseTopics(data.topics(), Errors.forException(e));
|
responseTopicData = getErrorResponseTopics(data.topics(), Errors.forException(e));
|
||||||
|
return new OffsetCommitResponse(new OffsetCommitResponseData()
|
||||||
short versionId = version();
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
return new OffsetCommitResponse(
|
|
||||||
new OffsetCommitResponseData()
|
|
||||||
.setTopics(responseTopicData)
|
.setTopics(responseTopicData)
|
||||||
);
|
.setThrottleTimeMs(throttleTimeMs));
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
case 5:
|
|
||||||
case 6:
|
|
||||||
case 7:
|
|
||||||
return new OffsetCommitResponse(
|
|
||||||
new OffsetCommitResponseData()
|
|
||||||
.setTopics(responseTopicData)
|
|
||||||
.setThrottleTimeMs(throttleTimeMs)
|
|
||||||
|
|
||||||
);
|
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.OFFSET_COMMIT.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static OffsetCommitRequest parse(ByteBuffer buffer, short version) {
|
public static OffsetCommitRequest parse(ByteBuffer buffer, short version) {
|
||||||
|
|
|
@ -333,22 +333,7 @@ public class ProduceRequest extends AbstractRequest {
|
||||||
for (TopicPartition tp : partitions())
|
for (TopicPartition tp : partitions())
|
||||||
responseMap.put(tp, partitionResponse);
|
responseMap.put(tp, partitionResponse);
|
||||||
|
|
||||||
short versionId = version();
|
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
case 5:
|
|
||||||
case 6:
|
|
||||||
case 7:
|
|
||||||
case 8:
|
|
||||||
return new ProduceResponse(responseMap, throttleTimeMs);
|
return new ProduceResponse(responseMap, throttleTimeMs);
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.PRODUCE.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -67,27 +67,10 @@ public class SyncGroupRequest extends AbstractRequest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
|
||||||
short versionId = version();
|
return new SyncGroupResponse(new SyncGroupResponseData()
|
||||||
switch (versionId) {
|
|
||||||
case 0:
|
|
||||||
return new SyncGroupResponse(
|
|
||||||
new SyncGroupResponseData()
|
|
||||||
.setErrorCode(Errors.forException(e).code())
|
.setErrorCode(Errors.forException(e).code())
|
||||||
.setAssignment(new byte[0])
|
.setAssignment(new byte[0])
|
||||||
);
|
.setThrottleTimeMs(throttleTimeMs));
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
return new SyncGroupResponse(
|
|
||||||
new SyncGroupResponseData()
|
|
||||||
.setErrorCode(Errors.forException(e).code())
|
|
||||||
.setAssignment(new byte[0])
|
|
||||||
.setThrottleTimeMs(throttleTimeMs)
|
|
||||||
);
|
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
|
|
||||||
versionId, this.getClass().getSimpleName(), ApiKeys.SYNC_GROUP.latestVersion()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, ByteBuffer> groupAssignments() {
|
public Map<String, ByteBuffer> groupAssignments() {
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
"validVersions": "0-4",
|
"validVersions": "0-4",
|
||||||
"flexibleVersions": "4+",
|
"flexibleVersions": "4+",
|
||||||
"fields": [
|
"fields": [
|
||||||
{ "name": "ThrottleTimeMs", "type": "int32", "versions": "1+",
|
{ "name": "ThrottleTimeMs", "type": "int32", "versions": "1+", "ignorable": true,
|
||||||
"about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
|
"about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
|
||||||
{ "name": "Responses", "type": "[]DeletableTopicResult", "versions": "0+",
|
{ "name": "Responses", "type": "[]DeletableTopicResult", "versions": "0+",
|
||||||
"about": "The results for each topic we tried to delete.", "fields": [
|
"about": "The results for each topic we tried to delete.", "fields": [
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
"validVersions": "0-9",
|
"validVersions": "0-9",
|
||||||
"flexibleVersions": "9+",
|
"flexibleVersions": "9+",
|
||||||
"fields": [
|
"fields": [
|
||||||
{ "name": "ThrottleTimeMs", "type": "int32", "versions": "3+",
|
{ "name": "ThrottleTimeMs", "type": "int32", "versions": "3+", "ignorable": true,
|
||||||
"about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
|
"about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
|
||||||
{ "name": "Brokers", "type": "[]MetadataResponseBroker", "versions": "0+",
|
{ "name": "Brokers", "type": "[]MetadataResponseBroker", "versions": "0+",
|
||||||
"about": "Each broker in the response.", "fields": [
|
"about": "Each broker in the response.", "fields": [
|
||||||
|
|
|
@ -34,7 +34,6 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static org.apache.kafka.common.requests.AbstractResponse.DEFAULT_THROTTLE_TIME;
|
|
||||||
import static org.apache.kafka.common.requests.OffsetCommitRequest.getErrorResponseTopics;
|
import static org.apache.kafka.common.requests.OffsetCommitRequest.getErrorResponseTopics;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertThrows;
|
import static org.junit.Assert.assertThrows;
|
||||||
|
@ -97,12 +96,7 @@ public class OffsetCommitRequestTest {
|
||||||
OffsetCommitResponse response = request.getErrorResponse(throttleTimeMs, Errors.NOT_COORDINATOR.exception());
|
OffsetCommitResponse response = request.getErrorResponse(throttleTimeMs, Errors.NOT_COORDINATOR.exception());
|
||||||
|
|
||||||
assertEquals(Collections.singletonMap(Errors.NOT_COORDINATOR, 2), response.errorCounts());
|
assertEquals(Collections.singletonMap(Errors.NOT_COORDINATOR, 2), response.errorCounts());
|
||||||
|
|
||||||
if (version >= 3) {
|
|
||||||
assertEquals(throttleTimeMs, response.throttleTimeMs());
|
assertEquals(throttleTimeMs, response.throttleTimeMs());
|
||||||
} else {
|
|
||||||
assertEquals(DEFAULT_THROTTLE_TIME, response.throttleTimeMs());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue