pilichoumao opened a new pull request, #6405: URL: https://github.com/apache/rocketmq-dashboard/pull/6405
### Which Issue(s) This PR Fixes Fixes #6404. ### Brief Description CSV imports reject more than 100 nonblank data records only after parsing and mapping the entire file. A file that cannot be imported still allocates every excess record; with 101 valid rows and a malformed tail, the UI reports the tail error rather than stopping at the limit. Move the existing check into the shared parser's completed-record boundary. Keep the header, blank lines and quoted multiline cells out of the data-record count. Reuse the current limit/message. Both Topic and Consumer upload regressions verify rejection without an import request and successful recovery with a new file scoped to the selected instance. No new file-byte or cell-size policy: File.text() still reads the file and a huge individual cell is outside this fix. README makes this boundary explicit. #6069's file-read ownership behavior is preserved; #5574 handles validation i18n separately. ### How Did You Test This Change? Baseline: `rocketmq-studio@779b8c0e7aed2396d3cc72743dcd544ea48e9ae6`. macOS, Node 22.19.0, npm 11.11.1, repository-pinned dependencies installed with npm ci. Serial runs: one Vitest fork, file parallelism disabled, Node old-space 768MiB for tests / 1024MiB for checks and build, UV_THREADPOOL_SIZE=1, GOMAXPROCS=1. - Same added tests on unchanged production: 3 fail / 3 pass. With the fix: 6/6 pass. Covers the actual parser, both File-upload page flows, 99/100 records, BOM/CRLF, blank rows, quoted multiline cells and recovery after failure. - `npm test -- --maxWorkers=1 --pool=forks --no-file-parallelism`: 159 files; 1608 pass / 2 fail. **The full suite is not green.** Both unchanged failures reproduce on a clean archive of the exact baseline with the same dependencies/runtime/flags: Producer.test.tsx `discards a slow connection response after the topic changes` (pointer-events:none), and UserManagement.test.tsx `exports all users that match the active filters` (search undefined instead of ops). - Independent comparison using those two complete files and the same command flags: clean baseline 29 pass / 2 fail; patched branch 29 pass / 2 fail, same cases and causes. Neither file is modified in this PR; the failures are retained rather than skipped. - `npm run lint`: pass, 0 errors and 10 warnings in untouched files. Targeted Prettier check and `git diff --check`: pass. - `npm run license:test`: 5/5 pass. - `npm run build`: TypeScript and Vite pass; license:check passes for 133 actual components and 140 license files. ### Checklist - [x] One coherent change; no unrelated test repairs - [x] Conventional Commit - [x] Regression tests added; existing ASF headers retained - [x] Existing UI message reused; no new translation strings - [x] Behavior and resource limits documented -- 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]
