pilichoumao opened a new issue, #7273: URL: https://github.com/apache/rocketmq-dashboard/issues/7273
### Problem On `rocketmq-studio` at 127c47b06a268cc74224d5f34c56ec7c36ac0d55, a long DLQ producer error containing a supplementary Unicode character can be cut between its UTF-16 surrogate halves. `RocketMQDLQProvider.normalizeFailureReason()` keeps 253 UTF-16 code units before appending `...` to enforce the 256-unit response limit. For example, the send exception text `"x".repeat(230) + "😀" + "y".repeat(40)` follows the real selected-message resend path. The `Producer send failed: ` prefix puts the emoji across that cut. The resulting `failures[0].reason` contains a lone high surrogate and cannot round-trip through UTF-8 unchanged. Resend failure counts remain correct; this issue concerns the returned explanation, not message delivery or a database vulnerability. ### Expected behavior Keep the existing reason limit, whitespace normalization, failure accounting and suffix, while cutting only between complete characters. Add boundary regressions through the public resend entry point and cover both per-message and producer-session failures. ### Investigation A Linux/ECS probe of the current production resend path reproduced one failure among three adjacent boundary cases; a temporary cut-boundary guard passed the related 83 tests. These were local client mocks, without a live Broker. Formal Maven/build validation will accompany the patch. Related work: #4817 introduced the structured DLQ failure details; #4692 established Unicode-safe bounds in other paths but does not modify this provider. Searches for DLQ surrogate/Unicode/failure-reason truncation did not find this specific fix. -- 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]
