tianliuliu commented on code in PR #4059:
URL: https://github.com/apache/rocketmq/pull/4059#discussion_r839393355


##########
store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java:
##########
@@ -426,17 +426,31 @@ private void setMessageInfo(MessageExtBrokerInner msg, 
int tranType) {
         // Back to Results
         AppendMessageResult appendResult;
         AppendFuture<AppendEntryResponse> dledgerFuture;
-        EncodeResult encodeResult;
+        EncodeResult encodeResult = null;
 
-        encodeResult = this.messageSerializer.serialize(msg);
-        if (encodeResult.status != AppendMessageStatus.PUT_OK) {
-            return CompletableFuture.completedFuture(new 
PutMessageResult(PutMessageStatus.MESSAGE_ILLEGAL, new 
AppendMessageResult(encodeResult.status)));
+        boolean isMultiDispatch = multiDispatch.isMultiDispatchMsg(msg);
+        if (!isMultiDispatch) {
+            encodeResult = this.messageSerializer.serialize(msg);
+            if (encodeResult.status != AppendMessageStatus.PUT_OK) {
+                return CompletableFuture.completedFuture(new 
PutMessageResult(PutMessageStatus.MESSAGE_ILLEGAL, new 
AppendMessageResult(encodeResult.status)));
+            }
         }
         putMessageLock.lock(); //spin or ReentrantLock ,depending on store 
config
         long elapsedTimeInLock;
         long queueOffset;
         try {
             beginTimeInDledgerLock = 
this.defaultMessageStore.getSystemClock().now();
+            if (isMultiDispatch) {
+                boolean multiDispatchWrapResult = 
multiDispatch.wrapMultiDispatch(msg);

Review Comment:
   make wrapMultiDispatch method thread safety and not use lock ,because if 
this the lock will be larger, not good idea



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to