This is an automated email from the ASF dual-hosted git repository.
xyz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-client-cpp.git
The following commit(s) were added to refs/heads/main by this push:
new 4360500 Change return code of MultiTopicsConsumerImpl::closeAsync
after unsubscribe or close (#413)
4360500 is described below
commit 436050092930b3eca73883cc7623f8cebf08f636
Author: Masahiro Sakamoto <[email protected]>
AuthorDate: Mon Mar 11 15:46:13 2024 +0900
Change return code of MultiTopicsConsumerImpl::closeAsync after unsubscribe
or close (#413)
Fixes #88
### Motivation
https://github.com/apache/pulsar-client-cpp/pull/338 fixed
`ConsumerImpl::closeAsync` so that closing after it was already closed or
unsubscribed returns `ResultOk` instead of `ResultAlreadyClosed`. However,
`MultiTopicsConsumerImpl::closeAsync` still returns `ResultAlreadyClosed`. This
seems to be a change omission.
---
lib/MultiTopicsConsumerImpl.cc | 4 ++--
tests/BasicEndToEndTest.cc | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/MultiTopicsConsumerImpl.cc b/lib/MultiTopicsConsumerImpl.cc
index a0854cf..1484785 100644
--- a/lib/MultiTopicsConsumerImpl.cc
+++ b/lib/MultiTopicsConsumerImpl.cc
@@ -475,7 +475,7 @@ void MultiTopicsConsumerImpl::closeAsync(ResultCallback
originalCallback) {
};
const auto state = state_.load();
if (state == Closing || state == Closed) {
- callback(ResultAlreadyClosed);
+ callback(ResultOk);
return;
}
@@ -488,7 +488,7 @@ void MultiTopicsConsumerImpl::closeAsync(ResultCallback
originalCallback) {
if (consumers.empty()) {
LOG_DEBUG("TopicsConsumer have no consumers to close "
<< " topic" << topic() << " subscription - " <<
subscriptionName_);
- callback(ResultAlreadyClosed);
+ callback(ResultOk);
return;
}
diff --git a/tests/BasicEndToEndTest.cc b/tests/BasicEndToEndTest.cc
index 5dbccbf..42c072a 100644
--- a/tests/BasicEndToEndTest.cc
+++ b/tests/BasicEndToEndTest.cc
@@ -1694,7 +1694,7 @@ TEST(BasicEndToEndTest, testSeekOnPartitionedTopic) {
ASSERT_EQ(expected.str(), msgReceived.getDataAsString());
ASSERT_EQ(ResultOk, consumer.acknowledge(msgReceived));
ASSERT_EQ(ResultOk, consumer.unsubscribe());
- ASSERT_EQ(ResultAlreadyClosed, consumer.close());
+ ASSERT_EQ(ResultOk, consumer.close());
ASSERT_EQ(ResultOk, producer.close());
ASSERT_EQ(ResultOk, client.close());
}