zmuxuny opened a new pull request, #6566: URL: https://github.com/apache/rocketmq-dashboard/pull/6566
### Which Issue(s) This PR Fixes Fixes #4513. Restores #4514 after the inactivity bot closed it on October 13. The original PR retains the [human review](https://github.com/apache/rocketmq-dashboard/pull/4514#pullrequestreview-5267294318) and [response to that review](https://github.com/apache/rocketmq-dashboard/pull/4514#issuecomment-5771255152). Reopening the original through the available GitHub integration returned HTTP 403, so this submission preserves its source branch and commit history. ### Revised behavior Contradictory short/empty cloud message pages now retain collected rows and publish MessageQueryResult.truncated through the existing resultMayBeTruncated channel. They do not become 502 errors or falsely complete results. The change covers Tencent and Aliyun, reuses Pagination.isIncompletePage, preserves Tencent TaskRequestId and offset progression, and measures Aliyun completeness before local tag filtering. Genuine final/empty pages, result budgets and missing/negative-total fallback remain unchanged. Tencent resource inventories retain their existing fail-closed policy. Apache's queue-offset/PullStatus scan has a distinct scan contract and remains outside this change, as explained in the original review response. #5523 addresses that separate area. ### Current verification (2026-10-13) Published head 2aabf41dd857357bb76349b3a1230ec27e5b75e2 preserves the original commits and merges rocketmq-studio@779b8c0e7aed2396d3cc72743dcd544ea48e9ae6. Its tree was verified identical to the locally tested tree. The contribution remains six backend source/test files. Five new Aliyun regression cases cover a full first page followed by an empty/short contradictory page, retention of earlier rows, cumulative provider counts when the first page is filtered out, and a genuinely complete negative control. Every case verifies requests for pages 1 and 2. - Against unmodified upstream Aliyun production: five cases ran, exactly four incomplete-result assertions failed; the complete control passed. - Restoring the fix: PaginationTest, TencentInstanceProviderTest, AliyunInstanceProviderTest, MessageServiceTest, MessageControllerTest, MessageQueryToolHandlerTest, MessageQueryByTopicToolHandlerTest, ToolOutputSchemaContractTest: 168 passed, zero failures/errors/skips. - Checkstyle: zero violations; git diff --check passed. - mvn -B -ntp -DskipTests package: BUILD SUCCESS, including the binary-license gate (278 components), with no gate bypass. - Separate combined snapshot with refreshed #4504: 224 focused tests passed, including two temporary interaction assertions for business-rejection precedence and omitted-success compatibility. Those combined-only assertions are not in this standalone patch. - Independent code review found no P1/P2 issue. AI assistance was used; the diff and regressions were reviewed. Local verification used Java 21.0.12.1, Maven 3.9.11 and the Mockito Java agent. The evidence uses controlled responses, not live provider captures. Full MySQL integration, frontend, Docker and Go suites were not run locally; GitHub CI remains to qualify this exact head. ### Coordination The refreshed #4504 tree merges cleanly with this fix. Open #6080/#6085 handle inventory/catalog completeness and do not replace cloud message truncation; their pairwise merge-tree checks are clean. #5523 currently conflicts with latest upstream in Apache provider/generated catalog files independently of this patch. -- 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]
