Skip to content

Commit c43e3f8

Browse files
authored
pubsub/azuresb: fix non empty slice with nil message return (#2931)
1 parent 9e2accc commit c43e3f8

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

pubsub/azuresb/azuresb.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ func (s *subscription) ReceiveBatch(ctx context.Context, maxMessages int) ([]*dr
452452
return nil, s.linkErr
453453
}
454454

455-
// ReceiveOne will block until ctx is Done; we want to return after
455+
// ReceiveOne will block until rctx is Done; we want to return after
456456
// a reasonably short delay even if there are no messages. So, create a
457457
// sub context for the RPC.
458458
rctx, cancel := context.WithTimeout(ctx, listenerTimeout)
@@ -462,7 +462,7 @@ func (s *subscription) ReceiveBatch(ctx context.Context, maxMessages int) ([]*dr
462462
// that aren't necessarily finished when Receive returns, which causes
463463
// data races if Receive is called again quickly. ReceiveOne is more
464464
// straightforward.
465-
var message *driver.Message
465+
var messages []*driver.Message
466466
err := s.sbSub.ReceiveOne(rctx, servicebus.HandlerFunc(func(_ context.Context, sbmsg *servicebus.Message) error {
467467
metadata := map[string]string{}
468468
for key, value := range sbmsg.GetKeyValues() {
@@ -476,19 +476,19 @@ func (s *subscription) ReceiveBatch(ctx context.Context, maxMessages int) ([]*dr
476476
if sbmsg.SystemProperties != nil && sbmsg.SystemProperties.PartitionID != nil {
477477
partitionID = *sbmsg.SystemProperties.PartitionID
478478
}
479-
message = &driver.Message{
479+
messages = append(messages, &driver.Message{
480480
Body: sbmsg.Data,
481481
Metadata: metadata,
482482
AckID: &partitionAckID{partitionID, sbmsg.LockToken},
483483
AsFunc: messageAsFunc(sbmsg),
484-
}
484+
})
485485
return nil
486486
}))
487487
// Mask rctx timeouts, they are expected if no messages are available.
488488
if err == rctx.Err() {
489489
err = nil
490490
}
491-
return []*driver.Message{message}, err
491+
return messages, err
492492
}
493493

494494
func messageAsFunc(sbmsg *servicebus.Message) func(interface{}) bool {

0 commit comments

Comments
 (0)