This is an automated email from the ASF dual-hosted git repository.
vongosling pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-cpp.git
The following commit(s) were added to refs/heads/master by this push:
new 1e4ac9c fix(transaction): failed to select transaction producer to
call local state checker (#246)
1e4ac9c is described below
commit 1e4ac9c0d3fa67c087e6077977992d53ec07aa98
Author: dinglei <[email protected]>
AuthorDate: Wed Feb 19 19:46:31 2020 +0800
fix(transaction): failed to select transaction producer to call local state
checker (#246)
* fix(transaction): failed to select transaction producer to call local
state checker
* fix(transaction): fix the coredump when the transaction producer shutdown.
---
src/MQClientFactory.cpp | 4 ++--
src/extern/CProducer.cpp | 4 ----
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/MQClientFactory.cpp b/src/MQClientFactory.cpp
index 6e1a392..5a3e363 100644
--- a/src/MQClientFactory.cpp
+++ b/src/MQClientFactory.cpp
@@ -22,7 +22,7 @@
#include "PullRequest.h"
#include "Rebalance.h"
#include "TopicPublishInfo.h"
-#include "TransactionMQProducer.h"
+#include "TransactionMQProducerImpl.h"
#define MAX_BUFF_SIZE 8192
#define SAFE_BUFF_SIZE 7936 // 8192 - 256 = 7936
@@ -698,7 +698,7 @@ void MQClientFactory::checkTransactionState(const
std::string& addr,
if (!group.empty()) {
MQProducer* producer = selectProducer(group);
if (producer != nullptr) {
- TransactionMQProducer* transProducer =
dynamic_cast<TransactionMQProducer*>(producer);
+ TransactionMQProducerImpl* transProducer =
dynamic_cast<TransactionMQProducerImpl*>(producer);
if (transProducer != nullptr) {
transProducer->checkTransactionState(addr, messageExt,
checkRequestHeader.m_tranStateTableOffset,
checkRequestHeader.m_commitLogOffset, checkRequestHeader.m_msgId,
diff --git a/src/extern/CProducer.cpp b/src/extern/CProducer.cpp
index e230257..d025a21 100644
--- a/src/extern/CProducer.cpp
+++ b/src/extern/CProducer.cpp
@@ -261,10 +261,6 @@ int DestroyProducer(CProducer* pProducer) {
delete defaultMQProducer->innerTransactionProducer;
defaultMQProducer->innerTransactionProducer = NULL;
}
- if (defaultMQProducer->listenerInner != NULL) {
- delete defaultMQProducer->listenerInner;
- defaultMQProducer->listenerInner = NULL;
- }
} else {
if (defaultMQProducer->innerProducer != NULL) {
delete defaultMQProducer->innerProducer;