This is an automated email from the ASF dual-hosted git repository.
hubcio pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git
The following commit(s) were added to refs/heads/master by this push:
new e1b1b22a7 fix(go,csharp): remove duplicate consumer groups in
DeserializeClient/MapClient (#3164)
e1b1b22a7 is described below
commit e1b1b22a749d44f3550b15535d3da1f8ab5fa0e9
Author: Atharva Lade <[email protected]>
AuthorDate: Mon Apr 27 07:10:35 2026 -0500
fix(go,csharp): remove duplicate consumer groups in
DeserializeClient/MapClient (#3164)
---
foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs | 32 ++++++++++------------
.../binary_response_deserializer.go | 28 +++++++++----------
2 files changed, 27 insertions(+), 33 deletions(-)
diff --git a/foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs
b/foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs
index cb530a54e..7ec286d8e 100644
--- a/foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs
+++ b/foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs
@@ -239,26 +239,22 @@ internal static class BinaryMapper
internal static ClientResponse MapClient(ReadOnlySpan<byte> payload)
{
var (response, position) = MapClientInfo(payload, 0);
- var consumerGroups = new List<ConsumerGroupInfo>();
- var length = payload.Length;
+ var consumerGroups = new
List<ConsumerGroupInfo>(response.ConsumerGroupsCount);
- while (position < length)
+ for (var i = 0; i < response.ConsumerGroupsCount; i++)
{
- for (var i = 0; i < response.ConsumerGroupsCount; i++)
- {
- var streamId =
BinaryPrimitives.ReadInt32LittleEndian(payload[position..(position + 4)]);
- var topicId =
BinaryPrimitives.ReadInt32LittleEndian(payload[(position + 4)..(position + 8)]);
- var consumerGroupId =
BinaryPrimitives.ReadInt32LittleEndian(payload[(position + 8)..(position +
12)]);
- var consumerGroup
- = new ConsumerGroupInfo
- {
- StreamId = streamId,
- TopicId = topicId,
- GroupId = consumerGroupId
- };
- consumerGroups.Add(consumerGroup);
- position += 12;
- }
+ var streamId =
BinaryPrimitives.ReadInt32LittleEndian(payload[position..(position + 4)]);
+ var topicId =
BinaryPrimitives.ReadInt32LittleEndian(payload[(position + 4)..(position + 8)]);
+ var consumerGroupId =
BinaryPrimitives.ReadInt32LittleEndian(payload[(position + 8)..(position +
12)]);
+ var consumerGroup
+ = new ConsumerGroupInfo
+ {
+ StreamId = streamId,
+ TopicId = topicId,
+ GroupId = consumerGroupId
+ };
+ consumerGroups.Add(consumerGroup);
+ position += 12;
}
return new ClientResponse
diff --git a/foreign/go/binary_serialization/binary_response_deserializer.go
b/foreign/go/binary_serialization/binary_response_deserializer.go
index 81bd35153..045073f55 100644
--- a/foreign/go/binary_serialization/binary_response_deserializer.go
+++ b/foreign/go/binary_serialization/binary_response_deserializer.go
@@ -538,24 +538,22 @@ func MapClientInfo(payload []byte, position int)
(iggcon.ClientInfo, int) {
func DeserializeClient(payload []byte) *iggcon.ClientInfoDetails {
clientInfo, position := MapClientInfo(payload, 0)
- consumerGroups := make([]iggcon.ConsumerGroupInfo,
clientInfo.ConsumerGroupsCount)
- length := len(payload)
+ consumerGroups := make([]iggcon.ConsumerGroupInfo, 0,
clientInfo.ConsumerGroupsCount)
- for position < length {
- for i := uint32(0); i < clientInfo.ConsumerGroupsCount; i++ {
- streamId := binary.LittleEndian.Uint32(payload[position
: position+4])
- topicId :=
binary.LittleEndian.Uint32(payload[position+4 : position+8])
- groupId :=
binary.LittleEndian.Uint32(payload[position+8 : position+12])
-
- consumerGroup := iggcon.ConsumerGroupInfo{
- StreamId: streamId,
- TopicId: topicId,
- GroupId: groupId,
- }
- consumerGroups = append(consumerGroups, consumerGroup)
- position += 12
+ for i := uint32(0); i < clientInfo.ConsumerGroupsCount; i++ {
+ streamId := binary.LittleEndian.Uint32(payload[position :
position+4])
+ topicId := binary.LittleEndian.Uint32(payload[position+4 :
position+8])
+ groupId := binary.LittleEndian.Uint32(payload[position+8 :
position+12])
+
+ consumerGroup := iggcon.ConsumerGroupInfo{
+ StreamId: streamId,
+ TopicId: topicId,
+ GroupId: groupId,
}
+ consumerGroups = append(consumerGroups, consumerGroup)
+ position += 12
}
+
return &iggcon.ClientInfoDetails{
ClientInfo: clientInfo,
ConsumerGroups: consumerGroups,