diff --git a/src/org/redkale/mq/MessageClient.java b/src/org/redkale/mq/MessageClient.java index 8b7cd15aa..db2e7e5a8 100644 --- a/src/org/redkale/mq/MessageClient.java +++ b/src/org/redkale/mq/MessageClient.java @@ -80,12 +80,16 @@ public class MessageClient { } } if (convertType != null) message.setFormat(convertType); - if (needresp && message.getResptopic() == null) message.setResptopic(respTopic); - messageAgent.getProducer().apply(message); + if (needresp && (message.getResptopic() == null || message.getResptopic().isEmpty())) { + message.setResptopic(respTopic); + } if (counter != null) counter.incrementAndGet(); + messageAgent.getProducer().apply(message); if (needresp) { MessageRespFutureNode node = new MessageRespFutureNode(message.getSeqid(), counter, future); respNodes.put(message.getSeqid(), node); + } else { + future.complete(null); } } catch (Exception ex) { future.completeExceptionally(ex);